Brakował wpis dla 13 kwietnia — 4 user-facing commity (mentions
autocomplete, email+highlight dla @, fix double-submit tematów).
Przenumerowanie: 14.04 z v1.67.0 na v1.68.0, nowe v1.67.0 dla 13.04.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add helpers/company_context.py with get_active_company_id() fallback logic
- Add inject_company_context() context processor to app.py (user_companies, active_company, has_multiple_companies)
- Add /api/switch-company/<id> POST endpoint in public blueprint
- Set session['active_company_id'] on login (both standard and 2FA paths)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Expired classifieds show 'Wygasło' badge on list and detail view
- Closed classifieds show 'Zamknięte' badge on list
- Author can extend by 30 days with one click
- Homepage 'Nowe na portalu' excludes expired classifieds
- List shows all classifieds, active first
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
updated_at was being triggered by views_count increment on every page
view, making dates misleading. Reverted to created_at for display and sort.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Forum cards now show date of latest reply (not topic creation).
B2B cards show updated_at (not created_at), sorted by most recent activity.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace 'Najnowszy wpis na forum' (duplicate with Nowe na portalu)
with 'Nowi użytkownicy portalu' showing 4 latest registered users
with avatars, names, dates and company names.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Shows 2 latest forum topics + 2 latest B2B classifieds in a 4-column
grid between events and NordaGPT banner. Responsive 2-col on mobile.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Renumbered all versions from v1.53+ down by 1 to eliminate the
v1.51→v1.53 gap. Current latest: v1.62.0.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Link keys must match the <strong>title</strong> text exactly for the
template macro to render "Wypróbuj →" buttons next to each item.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Merged same-day releases into v1.57.0. Renumbered v1.58-v1.63.
Added links to homepage and other key pages.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New features: company wizard, paid events, homepage redesign, new members
page, group messaging UI, recipient search, group management panel.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Event attendee counts were inconsistent - event detail page showed total
(members + guests = 42) but event list and homepage showed only members (39).
Now all views use total_attendee_count including guests (osoby towarzyszące).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Flash success message showing format conversion (e.g. "JPG do WebP")
- Flash error message if conversion fails with suggestion to try another file
- Flash warning for unsupported file formats
- Form hint explains automatic WebP conversion
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Templates expect logo at {slug}.webp with SVG fallback. When users uploaded
JPG/PNG files, the logo was saved with original extension and never displayed.
Now all raster uploads are converted to .webp via Pillow; SVG stays as-is.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Forum tile: show newest reply (author + date), not newest topic creation
- New members: find newest board meeting that actually has admitted companies
- Fix events-row container for proper filter rendering
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add admitted_at_meeting_id to Company model linking firms to board meetings.
Homepage now shows 2 events (left column) + latest forum topic and new members
admitted at the last board meeting (right column). Responsive single-column on mobile.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add created_by_id FK to users table (NULL = self-registration)
- Set created_by_id in admin create, bulk create, and team add routes
- Show "samorejestracja" or "dodał: [name]" in admin users panel
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Logo upload in company edit was writing the file path to `logo_dark_bg`
(a Boolean column), causing TypeError and rolling back ALL profile changes.
Now saves to static/img/companies/{slug}.{ext} where company_detail expects it.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Hide "Zapisz zmiany" and preview panel when team tab is active
- Show last login date or "Nie zalogował/a się jeszcze" per member
- Add "Wyślij ponownie zaproszenie" button for inactive accounts
- New endpoint POST /firma/<id>/zespol/<user_id>/zaproszenie
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Allow company MANAGERs to add/remove users, change roles,
and manage granular permissions from the company edit page.
New "Zespół" tab with AJAX-based team CRUD.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New: calendar subscription (iCal), AI enrichment with preview/checkboxes,
profile completeness indicator, parent-child company labels.
Improved: mobile calendar grid, featured events in red, mobile user menu
bottom sheet, NordaGPT usage limits display, www badges truncation,
company edit permissions info.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1. Completeness bar above buttons: "Profil 65%" with missing field list
2. Two buttons:
- "Uzupełnij brakujące" (fill mode) — only fills empty fields,
skips existing data, all results pre-checked
- "Sprawdź aktualizacje" (full mode) — shows all changes including
updates to existing fields, changes unchecked by default
3. "Uzupełnij" button hidden when profile is 100% complete
4. Backend provides profile_filled, profile_total, profile_missing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Display relationship labels on company cards in the directory:
- Child companies show "marka [Parent Name]" (e.g. "marka Forte Media")
- Parent companies show comma-separated list of child brands
- Handles inactive parents (e.g. Forte Media → Scantric, You're Welcome)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Search by name now finds registered portal users with avatar, company,
and chamber role badge. Deduplicates with KRS person results.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Added chamber_role column to User model (prezes, wiceprezes, czlonek_rady, komisja_rewizyjna, sad_kolezenski)
- Migration 089 sets roles for all known members from norda-biznes.info/wladze-izby
- Role badges on user profile, person detail, and company contact persons
- New page /izba/wladze showing all chamber authorities grouped by organ
- Color-coded badges: gold (prezes), blue (wiceprezes), green (rada), purple (komisja), gray (sąd)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Each day gets one version bump (+1). No patch-level versions.
Merged v1.45+v1.46 into single v1.49 for March 19.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New API endpoint /api/upcoming-events?filter=norda|external|all.
Filter buttons fetch from server instead of hiding DOM elements.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Display 6 events instead of 4 on homepage. Add filter buttons (All/Norda/External)
and green gradient for external events with source badge.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Person profiles (/osoba/, /profil/) now require membership
- Company detail shows limited "business card" for guests: name, logo,
category, short description — full content hidden behind membership CTA
- Banner "Złóż deklarację członkowską" for guests on company page
- Edit/AI buttons hidden for guests
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Forum: add @forum_access_required to ALL public routes (read+write)
- Reports: add @member_required to all report routes
- Announcements: add @member_required to list and detail
- Education: add @member_required to all routes
- Calendar: guests can VIEW all events but cannot RSVP (public+members_only)
- PEJ and ZOPK remain accessible (as intended for outreach)
UNAFFILIATED users (registered but not Izba members) are now properly
restricted from internal community features.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ICS export, RSS feed, and admin creation now correctly use
external_source (e.g. "Agencja Rozwoju Pomorza") as the organizer
instead of defaulting to "Norda Biznes" for external events.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Three public feeds: /feed/events.xml (upcoming events),
/feed/news.xml (announcements), /feed/pej.xml (nuclear news).
RSS 2.0 format with KIG custom fields (thumbnail, datawydarzenia).
RSS discovery links added to base.html head.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Allows company managers to set or correct the founding year. Field is
read-only when the year comes from KRS/CEIDG registry data.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>