- 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>
- 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>
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>
Companies matched to ZOPK projects (score >= 40) now see a green
"Zielony Okrąg Przemysłowy Kaszubia" section on their profile with:
- Project name, type icon, and link type badge
- AI-generated collaboration description explaining relevance
- Relevance score percentage
- Links to project detail pages
- Hover effects for interactivity
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add /api/zopk-facts endpoint returning paginated facts from distinct
source articles, ordered by recency
- Add "Pokaż więcej" button with AJAX loading and fade-in animation
- New cards are clickable with same hover effect as initial ones
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace broken distinct() call with group_by() and add db.rollback()
in except handler to prevent failed transaction from cascading.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pick one fact from each of the 3 most recent distinct articles
instead of 3 facts from the same article.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Change from random() to published_at DESC — show newest, most
relevant facts instead of random old ones
- Translate fact type labels to Polish (investment→inwestycja,
decision→decyzja, event→wydarzenie, etc.)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Enable "Czy wiesz, że..." ZOPK facts widget on homepage for all
logged-in users (was admin-only and disabled with {% if False %})
- Add "Oś czasu" button to ZOPK admin dashboard navigation (was
only accessible from public /zopk page edit links)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- /profil/<user_id>: simple profile for users without person_id,
redirects to /osoba/ if person_id exists
- event.html: all attendees are now clickable links (green)
- Auto-link User→Person by name match on every login (no manual scripts)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>