- Główne kategorie jako wyróżnione przyciski
- Podkategorie z mniejszym fontem
- filterCategoryGroup() - filtruje po grupie (główna + podkategorie)
- Nowe style: category-main, category-sub, category-group
- Zachowano kompatybilność wsteczną z płaską strukturą
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Dodanie parent_id do tabeli categories
- Model Category z relacją parent/subcategories
- 4 główne grupy: Usługi, Budownictwo, Handel, Produkcja
- Skrypt assign_category_parents.py do przypisania podkategorii
- Migracja 030_add_category_hierarchy.sql
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Nowa tabela user_blocks do przechowywania blokad
- Model UserBlock w database.py
- Sprawdzanie blokad przed wysłaniem wiadomości (messages_send, messages_reply)
- UI zarządzania blokadami w /settings/blocks
- Nawigacja między ustawieniami (prywatność, blokady, 2FA)
- Blokada działa w obie strony
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- person_detail.html: ukrycie email/phone jeśli użytkownik wyłączył
- messages/compose.html: ukrycie emaila w dropdown i info o odbiorcy
- Kompatybilność wsteczna: NULL traktowane jako widoczne (True)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Nowe pola: privacy_show_phone, privacy_show_email w tabeli users
- Nowy route /settings/privacy z UI do zarządzania prywatnością
- Link "Ustawienia" w menu użytkownika
- Toggle switches do włączania/wyłączania widoczności danych
- Migracja SQL: 028_add_user_privacy_settings.sql
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Nowy blueprint /edukacja z materiałami szkoleniowymi
- Link "Edukacja" w menu (tylko dla zalogowanych)
- Strona placeholder z listą przyszłych materiałów
- Dostęp wymaga logowania (@login_required)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Meta description
- Default title w base.html
- Nagłówek nawigacji dla niezalogowanych
- Stopka strony
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Zmiana tytułu strony na "Norda Partner - Strefa Partnera"
- Usunięcie zbędnego przycisku "Norda Partner" z hero
- Przeniesienie sekcji "Gotowy na networking?" wyżej (po hero)
- Zachowanie linku "Strefa Gościa" → norda-biznes.info
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Landing page: przycisk "Norda Partner" + kontakt Izby (email, WhatsApp)
- Landing page: link "Strefa Gościa" → norda-biznes.info
- Menu "Więcej": dodano "Strefa Gościa (Izba)" dla zalogowanych
- Forum: ukryto filtry kategorii/statusów (uproszczenie UX)
- README: zmiana "AI Assistant" → "NordaGPT"
- Skrypt import firmy testowej "Kaszubia 2030"
- .gitignore: wykluczenie notatek ze spotkań (MEETING_*.md)
Zmiany na podstawie spotkania 2026-01-28 i uwag Artura Wiertla.
Wzór nawigacji: Vaillant.pl (Klienci indywidualni / Profesjonaliści)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Wyśrodkowanie nagłówka i podtytułu
- Niebieski akcent na słowie "więcej"
- Italic na podtytule
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Zmiana z "Znajdź partnera biznesowego" na bardziej
społecznościowy przekaz podkreślający networking.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Landing page: białe logo w sekcji hero (filter CSS)
- Login: logo nad formularzem
- Rejestracja: logo nad formularzem
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Logo w headerze (zastąpienie generycznej ikony SVG)
- Logo w footerze (nad nazwą "Norda Biznes Hub")
- Logo pobrane lokalnie do static/img/ dla wydajności
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Admin can send notifications about any release to all users
- Button visible only for logged-in admins
- Extracts first 3 highlights from 'new' section
- Shows confirmation dialog before sending
- Visual feedback: disabled during send, green when done
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- notify_all_users_release(): Notify all users about new system version
- notify_all_users_announcement(): Notify all users about new announcement
- Auto-send notifications when admin publishes an announcement
- New admin endpoint POST /admin/notify-release for manual release notifications
- Category-specific icons for announcement notifications
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- DB stores names in UPPERCASE (e.g. 'MICHAŁ BOGDAN ROSZMAN')
- AI generates Title Case (e.g. 'Michał Bogdan Roszman')
- Post-processing now converts to title() before matching
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Call _postprocess_links() on AI response before returning
- Ensures companies and people are linked even when AI doesn't format them
- Fixes inconsistent link generation by Gemini AI
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Używa istniejącego email_service.py z Microsoft Graph API
- Ładniejszy HTML email z dark theme
- Usunięto niepotrzebne importy smtplib/MIMEText
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
TypeError: 'datetime.datetime' object is not callable
Przyczyna: now jest obiektem datetime, nie funkcją
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Dodano person_id i profile URL do kontekstu osób w chatbocie
- Zaktualizowano system prompt: OBOWIĄZKOWE linki dla firm i osób
- Dodano CSS dla linków do osób (zielony badge)
- Rozszerzono JavaScript o wykrywanie linków /osoba/
Kolory badge:
- 🏢 Firmy: pomarańczowy (#c2410c)
- 👤 Osoby: zielony (#047857)
- 🔗 Zewnętrzne: niebieski (#1d4ed8)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Dodano overflow: hidden na html i body
- Ukrycie footer na stronie chatu (display: none)
- max-height na main dla pewności
- height: 100% na container
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Nadpisanie .container dla chatu (100% szerokości)
- Main z flex i overflow: hidden
- chat-main z height: 100% i max-height: 100%
- scrollToBottom z requestAnimationFrame dla pewności
- Struktura jak w ChatGPT/Claude
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Użycie scrollIntoView({ block: 'end' }) na ostatniej wiadomości
- Lepsze zachowanie - scroll do widocznego elementu
- Smooth scroll dla lepszego UX
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Dodano flex-shrink: 0 do .chat-header i .chat-input-area
- Dodano overflow: hidden do .chat-main
- Dodano min-height: 0 do .chat-messages (kluczowe dla flexbox overflow)
- Teraz header i input zawsze widoczne, tylko wiadomości się scrollują
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Linki do firm (nordabiznes.pl/company/): pomarańczowe badge'y
- Linki zewnętrzne (www, social, maps): niebieskie badge'y
- JavaScript wykrywa typ linku po URL i dodaje klasę CSS
- Hover effect z cieniem i lekkim uniesieniem
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Linki jako zaokrąglone badge'y z kolorowym tłem
- 4 kolory w rotacji: pomarańczowy, zielony, żółty, różowy
- Delikatny hover effect (ciemniejsze tło)
- Padding i border-radius dla lepszej widoczności
- Białe tło dla linków w wiadomościach użytkownika
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Backend (nordabiz_chat.py):
- Dodano instrukcję w system prompt wymagającą linków markdown
- Nazwy firm: [Firma](URL) - klikalne linki do profilu
- Nazwy osób: **Imię Nazwisko** (link do firmy)
Frontend (chat.html):
- Nowe style dla linków w wiadomościach
- Fioletowy kolor (#7c3aed) dla linków AI
- Hover effect z podkreśleniem
- Oddzielne style dla linków w wiadomościach użytkownika
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Przycisk ▶️ w headerze chatu obok badge'a modelu
- Modal z 40-sekundowym tutorialem wideo z polskim narratorem
- Poster (miniaturka) wideo
- Sekcja "Szybkie wskazówki" pod odtwarzaczem
- Responsywny design dla mobile
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Naprawia ostrzeżenie HTTP 308 w Health Check Dashboard.
Flask blueprint z url_prefix='/raporty' wymaga trailing slash.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New structure:
- Firmy | NordaGPT | Kalendarz | B2B | Forum | Więcej ▾
"Więcej" dropdown contains:
- Aktualności
- ZOP Kaszubia
- Kontakty zewnętrzne
- Raporty
- Mapa Powiązań
Most used features now directly visible in main nav.
Ref: forum post /forum/18 by Jacek Pomieczyński
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Obsługa pola 'text' z frontendu (oprócz 'content')
- Zmiana nazw pól odpowiedzi: ai_response→analysis, proposed_contacts→contacts
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Dodano modal "Dodaj z AI" z parsowaniem tekstu/obrazów przez Gemini
- API endpoints: /api/contacts/ai-parse, /api/contacts/bulk-create
- Nowy widok grupowania kontaktów po organizacji (domyślny)
- Widok tabeli dla kompaktowego przeglądu
- Przełącznik widoków z zapamiętywaniem preferencji
- Drag & drop dla zdjęć wizytówek
- Docker: PostgreSQL 16 (zgodność z produkcją)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>