- Modal z ikoną dzwoneczka zamiast natywnego confirm()
- Toast zamiast alert() dla wyników
- Informacja o działaniu powiadomień
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Niestandardowy modal z ikoną i animacją
- Przycisk Anuluj i Usuń
- Zamykanie przez klik na overlay lub Escape
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Przycisk usuwania wątku z potwierdzeniem
- Przycisk usuwania odpowiedzi
- Przyciski przypinania/odpinania wątku
- Przyciski blokowania/odblokowywania wątku
- Widoczne tylko dla administratorów
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- login.html: toggle dla pola hasła
- register.html: toggle dla pól hasło i potwierdzenie
- reset_password.html: toggle dla pól hasło i potwierdzenie
Feedback: "Brak podglądu hasła"
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New user account management section with:
- /konto - Edit personal data (name, phone)
- /konto/prywatnosc - Privacy settings
- /konto/bezpieczenstwo - Security settings (2FA, password)
- /konto/blokady - User blocks management
Features:
- Consistent sidebar navigation across all pages
- Responsive layout (mobile-friendly)
- Polish UI with clear section names
Replaces scattered /settings/* routes with unified /konto/* structure.
Menu link updated from "Ustawienia" to "Moje konto".
Fixes user feedback issue #6: "Brak edycji profilu"
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When user resets password, they've proven inbox access by clicking
the reset link. This change auto-verifies their email address,
eliminating the need to separately verify email after reset.
Fixes user feedback issue #2: "Reset hasła nie weryfikuje emaila"
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Problem: get_or_create_analytics_session() aktualizowało last_activity_at
ale nie duration_seconds, co powodowało że czas sesji zawsze wynosił 0 min.
Rozwiązanie: Dodano obliczanie duration_seconds przy każdym page view.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Dodano send_registration_notification() analogicznie do send_error_notification()
- Mail wysyłany na ERROR_NOTIFY_EMAIL przy każdej nowej rejestracji
- Zawiera: imię, email, NIP, nazwa firmy, status członkostwa NORDA
- Link do panelu /admin/users
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Dodano sekcję DANE WRAŻLIWE do system prompt
- AI odmówi odpowiedzi na pytania o PESEL, dowody, paszporty, karty
- Instrukcja: 'Przepraszam, nie mogę podawać informacji o numerach PESEL'
- Zapobiega halucynacjom AI łączącym zamaskowane dane z osobami z bazy
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Wszystkie release notes od v1.0.0 do v1.20.0 posortowane od najważniejszych
- Mega ważne funkcje wytłuszczone <strong>
- Dodano sekcję security w szablonie
- Stworzono przewodnik RELEASE_NOTES_GUIDE.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Zmiana formularza z select na checkboxy (wiele kategorii)
- Aktualizacja filtrowania: PostgreSQL ANY() dla tablicy categories
- Zachowanie kompatybilności wstecznej (pole category)
- Aktualizacja szablonów list.html i detail.html dla wielu badge'ów
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Dodanie kolumny categories (ARRAY) do tabeli announcements
- Nowe metody: categories_labels, has_category()
- Migracja 029: dodanie kolumny i mapowanie danych
- Zachowanie kompatybilności wstecznej z polem category
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Zmiana 'general'/'member_news' na 'internal'/'external'
- Kategorie: Wewnętrzne, Zewnętrzne, Wydarzenie, Okazja biznesowa, Partnerstwo
- Polskie znaki w tytułach i meta description
- "Aktualności Norda Biznes Partner"
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Dodano 2 filmy: zajawka 30s i tutorial 2min
- Modal z odtwarzaczem wideo (klik na kartę)
- Badge "Nowe" dla dostępnych materiałów
- Podgląd pierwszej klatki wideo
- Obsługa klawisza Escape do zamknięcia
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Banner NordaGPT na stronie głównej: 🤖 → nordagpt-icon.svg
- Modal NordaGPT: 🤖 → nordagpt-icon.svg
Spójność wizualna z /chat
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- zopk_knowledge_service.py: model dla kategoryzacji milestone'ów
- database.py: przykłady modeli w komentarzach kolumn
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Zmiana domyślnego modelu w dokumentacji i kodzie:
- gemini-2.5-flash → gemini-3-flash-preview
- gemini-2.5-pro → gemini-3-pro-preview
Zaktualizowane pliki:
- README.md - opis technologii
- docs/architecture/*.md - diagramy i przepływy
- nordabiz_chat.py - fallback model name
- zopk_news_service.py - model dla AI evaluation
- templates/admin/zopk_dashboard.html - wyświetlany model
Zachowano mapowania legacy modeli dla kompatybilności wstecznej.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Zmiana nazwy: "Norda Biznes Hub" → "Norda Biznes Partner"
- Aktualizacja modelu AI: Gemini 2.0 Flash → Gemini 3 Flash
- Zachowano historyczne odniesienia w timeline i dokumentacji
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Flash is free and fast - best default for users
- Prevents accidental Pro usage and costs
- Users can still switch to Pro manually if needed
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Created nordagpt-icon.svg combining Norda compass + INPI circuit motif
- Navy blue background with green AI chip center
- Yellow north indicator (Norda brand color)
- Updated header icon from robot emoji to new SVG
- Updated empty state icon
- Changed example questions to be more relevant:
- 'Szukam partnera do projektu budowlanego'
- 'Kto w Izbie zajmuje się marketingiem?'
- 'Poleć firmę z dobrymi opiniami Google'
- 'Co nowego na forum?'
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Show both models (Flash free, Pro premium) with visual distinction
- Add pricing section with costs and limits
- Update history timeline with today's changes
- Update benefits section with current features
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- costUsd was a string, causing 'toFixed is not a function' error
- Added parseFloat() for cost and parseInt() for latency
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>