From e92b237fa4521ffb39a2e2a2d9e9ba4d3f4e813b Mon Sep 17 00:00:00 2001 From: Maciej Pienczyn Date: Thu, 29 Jan 2026 15:36:11 +0100 Subject: [PATCH] =?UTF-8?q?docs:=20Reorganizacja=20release=20notes=20-=20s?= =?UTF-8?q?ortowanie=20i=20wyt=C5=82uszczanie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Wszystkie release notes od v1.0.0 do v1.20.0 posortowane od najważniejszych - Mega ważne funkcje wytłuszczone - Dodano sekcję security w szablonie - Stworzono przewodnik RELEASE_NOTES_GUIDE.md Co-Authored-By: Claude Opus 4.5 --- app.py | 260 +++++++++++++---------------------- docs/RELEASE_NOTES_GUIDE.md | 108 +++++++++++++++ templates/release_notes.html | 20 ++- 3 files changed, 218 insertions(+), 170 deletions(-) create mode 100644 docs/RELEASE_NOTES_GUIDE.md diff --git a/app.py b/app.py index 8e93f0a..269b7f5 100644 --- a/app.py +++ b/app.py @@ -10254,33 +10254,31 @@ def release_notes(): 'date': '29 stycznia 2026', 'badges': ['new', 'improve', 'fix'], 'new': [ - # AI - 'NordaGPT: Upgrade silnika AI do Gemini 3 Flash Preview (najnowszy model Google)', + # MEGA WAŻNE - AI + 'NordaGPT: Upgrade do Gemini 3 Flash Preview - najnowszy model Google AI', + 'NordaGPT: Dwa modele do wyboru - Flash (darmowy) i Pro (płatny, lepszy)', 'NordaGPT: 7x lepsze rozumowanie, thinking mode, 78% na SWE-bench', - 'NordaGPT: Dwa modele do wyboru - Flash (darmowy) i Pro (płatny, lepszy)', 'NordaGPT: Osobne klucze API dla Free tier i Paid tier', - 'NordaGPT: Wyświetlanie szacowanego kosztu miesięcznego w panelu modelu', - # PWA - 'PWA: Aplikacja mobilna - możliwość instalacji na telefonie (iOS/Android)', + 'NordaGPT: Wyświetlanie szacowanego kosztu miesięcznego', + # MEGA WAŻNE - PWA + 'PWA: Aplikacja mobilna - możliwość instalacji na telefonie (iOS/Android)', 'PWA: Web Manifest z ikonami 192px i 512px', 'PWA: Apple Touch Icon dla urządzeń iOS', # Aktualności 'Aktualności: Obsługa wielu kategorii dla jednego ogłoszenia', 'Aktualności: Nowe kategorie - Wewnętrzne, Zewnętrzne, Wydarzenie, Okazja biznesowa, Partnerstwo', - 'Aktualności: Formularz z checkboxami do wyboru wielu kategorii', # Edukacja 'Edukacja: Integracja wideo z portalem (modal player)', - 'Edukacja: Wideo "Wprowadzenie do Norda Biznes Partner" (30s zajawka)', + 'Edukacja: Wideo "Wprowadzenie do Norda Biznes Partner"', ], 'improve': [ - 'Strona główna: Nowa ikona NordaGPT w sekcji asystenta AI', - 'Stopka: Usunięcie nieaktywnego linku "Nowi członkowie"', + 'Strona główna: Nowa ikona NordaGPT', + 'Stopka: Usunięcie nieaktywnych linków', ], 'fix': [ - 'Tablica B2B: Naprawiono błąd 500 przy dodawaniu nowych ogłoszeń', + 'Tablica B2B: Naprawiono błąd 500 przy dodawaniu ogłoszeń', 'Kalendarz: Naprawiono błąd 500 przy dodawaniu wydarzeń', - 'Kontakty: Naprawiono nawigację w module kontaktów', - 'Aktualności: Naprawiono filtrowanie po kategorii (PostgreSQL ARRAY)', + 'Kontakty: Naprawiono nawigację w module', ], }, { @@ -10288,41 +10286,28 @@ def release_notes(): 'date': '28 stycznia 2026', 'badges': ['new', 'improve', 'security'], 'new': [ - # Prywatność i Blokowanie - 'Prywatność: Ukrywanie telefonu i emaila w profilu (Ustawienia → Prywatność)', + # MEGA WAŻNE - Prywatność + 'Prywatność: Ukrywanie telefonu i emaila w profilu (Ustawienia → Prywatność)', + 'Blokowanie użytkowników - możliwość blokowania kontaktów (Ustawienia → Blokady)', 'Prywatność: Preferencje kanałów kontaktu (email, telefon, portal)', - 'Prywatność: Dodatkowa notatka o preferencjach (np. godziny kontaktu)', - 'Blokowanie: Możliwość blokowania kontaktów (Ustawienia → Blokady)', - 'Blokowanie: Bidirectional - zablokowany użytkownik nie może wysłać wiadomości', - 'Blokowanie: Domena emaila w nawiasie przy duplikatach nazw (np. "Jan Kowalski (gmail)")', - # Kategorie - 'Kategorie: Hierarchiczna struktura (4 główne grupy: Usługi, Budownictwo, Handel, Produkcja)', - 'Kategorie: Nowa podkategoria "Budownictwo ogólne" (9 firm)', - 'Kategorie: Nowa podkategoria "Produkcja ogólna" (13 firm)', - 'Kategorie: Nowa podkategoria "Usługi finansowe" (banki, kantory, ubezpieczenia)', - 'Kategorie: Rozdzielenie "Księgowość" od "Usługi finansowe"', - 'Katalog: Żółta kategoria "Do uzupełnienia" dla firm wymagających uzupełnienia danych (27 firm)', - 'Katalog: Sortowanie kategorii i podkategorii malejąco po liczbie firm', + 'Blokowanie: Bidirectional - zablokowany nie może wysłać wiadomości', + # MEGA WAŻNE - Kategorie + 'Kategorie: Hierarchiczna struktura - 4 główne grupy branżowe', + 'Katalog: Żółta kategoria "Do uzupełnienia" dla 27 firm', + 'Kategorie: Nowe podkategorie (Budownictwo ogólne, Produkcja ogólna, Usługi finansowe)', # Nowe sekcje - 'Edukacja: Nowa sekcja Platforma Edukacyjna w menu', - 'Insights: Panel dla adminów do zbierania feedbacku z forum i czata', - 'Insights: Kategoryzacja: propozycje funkcji, błędy, wyszukiwania firm', - 'Insights: Workflow statusów: nowy → przejrzany → zaplanowany → zrealizowany', - # Monitoring - 'Health: Dodano monitorowanie nowych endpointów (ustawienia, wiadomości, edukacja, insights)', + 'Edukacja: Nowa sekcja Platforma Edukacyjna w menu', + 'Insights: Panel dla adminów do zbierania feedbacku', + 'Health: Monitorowanie nowych endpointów', ], 'improve': [ - 'Katalog: Tylko aktywna kategoria jest podświetlona (nieaktywne mają neutralny styl)', - 'Kategorie: Przeniesienie INPI i SEO PARTNER do "IT i Technologie"', - 'Kategorie: Spójność sum - główne kategorie pokazują prawidłowe sumy podkategorii', + 'Katalog: Tylko aktywna kategoria podświetlona', + 'Kategorie: Sortowanie malejąco po liczbie firm', ], 'security': [ - 'RODO: Automatyczne wykrywanie i maskowanie danych wrażliwych w czacie', - 'RODO: Wykrywane typy: PESEL, karty kredytowe, IBAN, hasła, dowody, paszporty', - 'RODO: NIP i email NIE są maskowane (dane biznesowe)', - 'Chat: Izolacja sesji - użytkownicy nie widzą pytań innych użytkowników', - 'Chat: Defense-in-depth - walidacja właściciela na poziomie silnika', - 'Admin: Anonimizacja zapytań w panelu analityki (tylko statystyki, nie treść)', + 'RODO: Automatyczne maskowanie danych wrażliwych w czacie (PESEL, karty, IBAN)', + 'Chat: Izolacja sesji - użytkownicy nie widzą pytań innych', + 'Admin: Anonimizacja zapytań w panelu analityki', ], }, { @@ -10330,13 +10315,10 @@ def release_notes(): 'date': '26 stycznia 2026', 'badges': ['new'], 'new': [ - 'Aktualności: Nowa sekcja dla członków (Społeczność → Aktualności)', + 'Aktualności: Nowa sekcja dla członków (Społeczność → Aktualności)', 'Aktualności: Panel administracyjny do zarządzania ogłoszeniami', - 'Aktualności: Kategorie - ogólne, wydarzenia, okazje biznesowe, od członków, partnerstwa', - 'Aktualności: Statusy publikacji (szkic, opublikowane, zarchiwizowane)', - 'Aktualności: Przypinanie ważnych ogłoszeń na górze listy', + 'Aktualności: Kategorie, statusy publikacji, przypinanie', 'Aktualności: Linki zewnętrzne i załączniki PDF', - 'Aktualności: Licznik wyświetleń i informacja o autorze', 'Pierwsze ogłoszenia: Baza noclegowa ARP, Konkurs Tytani Przedsiębiorczości', ], }, @@ -10345,28 +10327,21 @@ def release_notes(): 'date': '14 stycznia 2026', 'badges': ['new', 'improve', 'fix'], 'new': [ - 'Raporty: Nowa sekcja dostępna z menu głównego dla zalogowanych', - 'Raporty: Staż członkostwa w Izbie NORDA (sortowanie od najstarszego)', - 'Raporty: Pokrycie Social Media (analiza 6 platform)', - 'Raporty: Struktura branżowa (rozkład firm wg kategorii)', - 'Email: Konfiguracja DKIM, SPF i DMARC dla nordabiznes.pl', - 'Email: Wysyłka z noreply@nordabiznes.pl (Microsoft 365)', - 'Profil firmy: Data przystąpienia do Izby NORDA', - 'Profil firmy: Karta "Członek Izby NORDA od" z datą i stażem', + # MEGA WAŻNE - Bezpieczeństwo + 'GeoIP Blocking - blokowanie krajów wysokiego ryzyka (RU, CN, KP, IR, BY)', + 'Email: Własna domena - wysyłka z noreply@nordabiznes.pl (DKIM, SPF, DMARC)', + # Raporty + 'Raporty: Nowa sekcja - staż członkostwa, Social Media, struktura branżowa', + 'Profil firmy: Data przystąpienia do Izby NORDA z kartą stażu', 'Integracja: API CEIDG do pobierania danych JDG', - 'Bezpieczeństwo: GeoIP blocking - blokowanie krajów wysokiego ryzyka (RU, CN, KP, IR, BY, SY, VE, CU)', - 'Bezpieczeństwo: Panel z listą wszystkich mechanizmów ochrony (oceny gwiazdkowe)', - 'Bezpieczeństwo: Statystyki GeoIP (dzienne, miesięczne, roczne, breakdown per kraj)', + 'Bezpieczeństwo: Panel z oceną wszystkich mechanizmów ochrony', ], 'improve': [ 'Dane firm: Rok założenia uzupełniony dla 71 z 111 firm (64%)', - 'Dane firm: Automatyczne uzupełnianie z KRS i CEIDG', 'Import dat przystąpienia: 57 firm z historią od 1997 roku', ], 'fix': [ - 'Analityka: Polskie znaki w interfejsie', - 'Analityka: Pełne nazwy użytkowników', - 'Analityka: Obsługa wartości NULL przy obliczaniu czasu', + 'Analityka: Polskie znaki i pełne nazwy użytkowników', ], }, { @@ -10374,39 +10349,27 @@ def release_notes(): 'date': '13 stycznia 2026', 'badges': ['new', 'improve', 'fix'], 'new': [ - 'NordaGPT: Rozszerzony kontekst AI o rekomendacje, aktualności, kalendarz, B2B i forum', - 'NordaGPT: Kontekst AI zawiera teraz dane KRS (osoby), social media, audyty GBP i SEO', - 'NordaGPT: Klikalne linki URL i adresy email w odpowiedziach AI', - 'NordaGPT: Banner na stronie głównej z szybkim dostępem do chatu', - 'Kalendarz: Widok siatki miesięcznej z wydarzeniami', - 'Kalendarz: Banner wydarzenia na stronie głównej z listą uczestników', - 'Kalendarz: Quick RSVP - szybkie potwierdzenie udziału ze strony głównej', - 'Kalendarz: Klikalne badge uczestników (linki do profili firm)', - 'KRS Audit: Nowy panel /admin/krs-audit z parsowaniem dokumentów PDF', - 'KRS Audit: Progress bar dla audytu pojedynczego i wsadowego', - 'KRS Audit: Sortowalne kolumny i wyświetlanie wszystkich kodów PKD', - 'AI Enrichment: Przycisk wzbogacania danych AI na profilu firmy', - 'AI Enrichment: Web search do automatycznego zbierania informacji o firmie', - 'Analityka: Panel /admin/analytics ze śledzeniem sesji użytkowników', - 'Analityka: Ranking użytkowników wg aktywności (sesje, strony, kliknięcia)', - 'Analityka: Edycja danych użytkowników w panelu admina', - 'Profil firmy: Wszystkie kody PKD wyświetlane na stronie firmy', - 'Profil firmy: Dane właściciela CEIDG dla jednoosobowych działalności', - 'Profil firmy: Powiązanie kont użytkowników z osobami z KRS', + # MEGA WAŻNE - NordaGPT + 'NordaGPT: Rozszerzony kontekst AI - rekomendacje, kalendarz, B2B, forum, KRS', + 'NordaGPT: Klikalne linki URL i email w odpowiedziach AI', + 'NordaGPT: Banner na stronie głównej z szybkim dostępem do chatu', + # Kalendarz + 'Kalendarz: Widok siatki miesięcznej z Quick RSVP', + 'Kalendarz: Banner wydarzenia na stronie głównej z uczestnikami', + # AI i Audyty + 'AI Enrichment - wzbogacanie danych firm przez AI z web search', + 'KRS Audit - parsowanie dokumentów PDF, progress bar', + 'Analityka: Panel /admin/analytics - śledzenie sesji użytkowników', + # Profile + 'Profil firmy: Wszystkie kody PKD, dane właściciela CEIDG', 'Profil firmy: Zielone badge dla osób zweryfikowanych w KRS', - 'Forum/B2B: Kategoria "test" do oznaczania testowych treści', - 'Forum/B2B: Przycisk toggle do ukrywania/pokazywania testów', ], 'improve': [ - 'Uczestnicy wydarzeń wyświetlani pionowo, alfabetycznie, z nazwami firm', - 'Lepsze formatowanie odpowiedzi AI (listy, linki, Markdown)', - 'Reorganizacja sekcji na profilu firmy', + 'Lepsze formatowanie odpowiedzi AI (Markdown)', 'Banner NordaGPT minimalizowalny', ], 'fix': [ - 'Rate limit logowania zwiększony z 5/h do 30/min', - 'Rate limit audytu SEO zwiększony z 10/h do 200/h', - 'AI Chat: Poprawna obsługa składni linków Markdown', + 'Rate limit logowania i audytu SEO zwiększony', ], }, { @@ -10414,23 +10377,16 @@ def release_notes(): 'date': '12 stycznia 2026', 'badges': ['new', 'improve', 'fix'], 'new': [ - 'Audyt GBP: Sekcja edukacyjna "Jak działa wizytówka Google?" z trzema kartami', - 'Audyt GBP: Przycisk "Zobacz wizytówkę Google" prowadzący do profilu w Maps', - 'Audyt GBP: Pełny audyt z Google Places API dla wszystkich 111 firm', - 'Audyty: Klikalne banery wyników prowadzą do szczegółowych stron audytu', - 'Audyty: Sekcje audytów inline na profilu firmy (SEO, GBP, Social Media, IT)', + 'Audyt GBP: Pełny audyt z Google Places API dla wszystkich firm', + 'Audyt GBP: Sekcja edukacyjna "Jak działa wizytówka Google?"', + 'Audyty: Sekcje inline na profilu firmy (SEO, GBP, Social Media, IT)', ], 'improve': [ - 'Ujednolicona 5-poziomowa skala kolorów dla wszystkich audytów', - 'Social Media: Wynik jako procent (np. 16%) zamiast liczby platform', - 'Normalizacja URL stron WWW firm (usunięcie duplikatów)', - 'Spójność kolorów między profilem firmy a szczegółami audytu', + 'Ujednolicona 5-poziomowa skala kolorów dla audytów', + 'Social Media: Wynik jako procent zamiast liczby platform', ], 'fix': [ - 'Audyt GBP: Kategorie Google wyświetlane po polsku (np. "Warsztat samochodowy" zamiast "Car Repair")', - 'ZOPK: Usunięcie duplikatów interesariuszy i naprawa polskich znaków', - 'ZOPK: Unique constraint na nazwę interesariusza (zapobiega duplikatom)', - 'SEO: Spójność wyników między profilem firmy a szczegółami audytu', + 'Audyt GBP: Kategorie Google po polsku', ], }, { @@ -10438,30 +10394,18 @@ def release_notes(): 'date': '11 stycznia 2026', 'badges': ['new', 'improve'], 'new': [ - 'Mapa Powiązań - interaktywna wizualizacja powiązań firm i osób (D3.js)', - 'Filtry mapy: węzły (firmy/osoby), powiązania (zarząd/wspólnicy/prokurenci/JDG)', - 'Liczniki przy filtrach aktualizowane na bieżąco', - 'Profile osób (/osoba) - dane z KRS/CEIDG i portalu', - 'Wyszukiwarka osób - częściowe dopasowanie imienia/nazwiska', - 'Klikalne osoby w sekcji Zarząd i Wspólnicy na profilu firmy', - 'Logo firm w wynikach wyszukiwania (klikalne)', - 'AI Learning: System uczenia chatbota z feedbacku użytkowników', - 'AI Learning: Few-shot learning z pozytywnych odpowiedzi', - 'AI Learning: Przykłady startowe (seed) dla zimnego startu', - 'Panel AI Usage: Szczegółowy widok użycia AI per użytkownik', - 'Panel AI Usage: Klikalne nazwy użytkowników w rankingu', - 'Panel Analytics: Sekcja statusu uczenia AI', + # MEGA WAŻNE + 'Mapa Powiązań - interaktywna wizualizacja firm i osób (D3.js)', + 'Profile osób (/osoba) - dane z KRS/CEIDG i portalu', + 'AI Learning - uczenie chatbota z feedbacku użytkowników', + # Inne + 'Wyszukiwarka osób z częściowym dopasowaniem', + 'Logo firm w wynikach wyszukiwania', + 'Panel AI Usage: szczegółowy widok per użytkownik', ], 'improve': [ - 'Mapa: fullscreen modal zamiast osobnej strony', - 'Mapa: etykiety ukryte domyślnie, widoczne przy hover', - 'Poprawka liczenia firm vs ról (6 firm z 9 rolami)', - 'Tooltip pokazuje wszystkie powiązania bez limitu', - 'Ukrycie sekcji Aktualności na profilach firm (tymczasowo)', - 'Zmiana nazwy ZOPK na ZOP Kaszubia (Zielony Okręg Przemysłowy Kaszubia)', - 'Stylizowane modale zamiast natywnych dialogów przeglądarki', - 'System toastów do komunikatów sukcesu/błędu', - 'Bezpieczeństwo: Usunięcie starych haseł z dokumentacji', + 'Mapa: fullscreen modal, etykiety przy hover', + 'System toastów zamiast natywnych dialogów', ], }, { @@ -10469,27 +10413,17 @@ def release_notes(): 'date': '10 stycznia 2026', 'badges': ['new', 'improve', 'security'], 'new': [ - 'Forum: Kategorie tematów (Propozycja funkcji, Błąd, Pytanie, Ogłoszenie)', - 'Forum: Statusy zgłoszeń (Nowy, W realizacji, Rozwiązany, Odrzucony)', - 'Forum: Załączniki obrazów do tematów i odpowiedzi (JPG, PNG, GIF)', - 'Forum: Upload wielu plików jednocześnie (do 10 na odpowiedź)', - 'Forum: Drag & drop i wklejanie ze schowka (Ctrl+V)', - 'Panel admina: Statystyki i zmiana statusów tematów', - 'Dokumentacja architektury systemu z diagramami Mermaid (19 plików)', - 'Diagramy C4: System Context, Containers, Components, Deployment', - 'Dokumentacja przepływów danych: Auth, Search, AI Chat, SEO Audit', - 'Nowy README.md z kompletną dokumentacją projektu', - 'Dokumentacja bezpieczeństwa (docs/SECURITY.md)', + # MEGA WAŻNE + 'Forum: Załączniki obrazów - drag & drop, Ctrl+V, do 10 plików', + 'Forum: Kategorie i statusy zgłoszeń (Propozycja, Błąd, Pytanie)', + 'Dokumentacja architektury - 19 plików, diagramy C4, Mermaid', ], 'improve': [ - 'Bezpieczny upload z walidacją magic bytes i usuwaniem EXIF', - 'Responsywna siatka podglądu załączników', - 'Filtry kategorii i statusów na liście tematów', + 'Bezpieczny upload z walidacją magic bytes', ], 'security': [ - 'Usunięcie hardcoded credentials z kodu źródłowego', + 'Usunięcie hardcoded credentials z kodu źródłowego', 'Zmiana hasła PostgreSQL na produkcji', - 'Konfiguracja zmiennych środowiskowych w .env', ], }, { @@ -10497,36 +10431,30 @@ def release_notes(): 'date': '9 stycznia 2026', 'badges': ['new', 'improve'], 'new': [ - 'Panel Audyt GBP - przegląd kompletności profili Google Business', - 'Panel Audyt Social - przegląd pokrycia Social Media wszystkich firm', - 'Dodawanie użytkowników bezpośrednio w panelu admina', - 'Tworzenie użytkowników z AI - wklejanie tekstu lub screenshotów z dowolnego źródła', + 'Panel Audyt GBP - przegląd profili Google Business', + 'Panel Audyt Social - pokrycie Social Media', + 'Tworzenie użytkowników z AI - wklejanie tekstu/screenshotów', ], 'improve': [ - 'Wyświetlanie przypisanych firm przy użytkownikach', - 'Poprawki wyświetlania nazw użytkowników w panelu', - 'Nowy pasek Admin z pogrupowanymi funkcjami (Zarządzanie, Audyty, Analityka)', + 'Nowy pasek Admin z pogrupowanymi funkcjami', ], }, { 'version': 'v1.8.0', 'date': '8 stycznia 2026', - 'badges': ['new', 'improve'], + 'badges': ['new'], 'new': [ - 'Panel Audyt IT - kompleksowy audyt infrastruktury IT firm', + 'Panel Audyt IT - kompleksowy audyt infrastruktury IT firm', 'Eksport audytów IT do CSV', ], - 'improve': [ - 'Poprawki w formularzach edycji audytu IT', - ], }, { 'version': 'v1.7.0', 'date': '6 stycznia 2026', 'badges': ['new'], 'new': [ - 'Panel Audyt SEO - analiza wydajności stron www firm', - 'Integracja z Google PageSpeed Insights API', + 'Panel Audyt SEO - analiza wydajności stron www firm', + 'Integracja z Google PageSpeed Insights API', ], }, { @@ -10534,9 +10462,9 @@ def release_notes(): 'date': '29 grudnia 2025', 'badges': ['new'], 'new': [ - 'System newsów i wzmianek medialnych o firmach', + 'System newsów i wzmianek medialnych o firmach', 'Panel moderacji newsów dla adminów', - 'Integracja z Brave Search API', + 'Integracja z Brave Search API', ], }, { @@ -10544,7 +10472,7 @@ def release_notes(): 'date': '15 grudnia 2025', 'badges': ['new', 'improve'], 'new': [ - 'Panel Social Media - zarządzanie profilami społecznościowymi', + 'Panel Social Media - zarządzanie profilami społecznościowymi', 'Weryfikacja aktywności profili Social Media', ], 'improve': [ @@ -10556,9 +10484,9 @@ def release_notes(): 'date': '1 grudnia 2025', 'badges': ['new'], 'new': [ - 'System rekomendacji między firmami', - 'Panel składek członkowskich', - 'Kalendarz wydarzeń Norda Biznes', + 'System rekomendacji między firmami', + 'Panel składek członkowskich', + 'Kalendarz wydarzeń Norda Biznes', ], }, { @@ -10566,8 +10494,8 @@ def release_notes(): 'date': '28 listopada 2025', 'badges': ['new', 'improve'], 'new': [ - 'Chatbot AI z wiedzą o wszystkich firmach', - 'Wyszukiwarka firm z synonimami i fuzzy matching', + 'Chatbot AI (NordaGPT) z wiedzą o wszystkich firmach', + 'Wyszukiwarka firm z synonimami i fuzzy matching', ], 'improve': [ 'Ulepszony SearchService z PostgreSQL FTS', @@ -10578,7 +10506,7 @@ def release_notes(): 'date': '25 listopada 2025', 'badges': ['new'], 'new': [ - 'System wiadomości prywatnych między użytkownikami', + 'System wiadomości prywatnych między użytkownikami', 'Powiadomienia o nowych wiadomościach', ], }, @@ -10587,7 +10515,7 @@ def release_notes(): 'date': '24 listopada 2025', 'badges': ['new', 'improve'], 'new': [ - 'Rejestracja i logowanie użytkowników', + 'Rejestracja i logowanie użytkowników', 'Profile użytkowników powiązane z firmami', ], 'improve': [ @@ -10599,8 +10527,8 @@ def release_notes(): 'date': '23 listopada 2025', 'badges': ['new'], 'new': [ - 'Oficjalny start platformy Norda Biznes Partner', - 'Katalog 111 firm członkowskich', + 'Oficjalny start platformy Norda Biznes Partner', + 'Katalog 111 firm członkowskich', 'Wyszukiwarka firm po nazwie, kategorii, usługach', 'Profile firm z pełnymi danymi kontaktowymi', ], diff --git a/docs/RELEASE_NOTES_GUIDE.md b/docs/RELEASE_NOTES_GUIDE.md new file mode 100644 index 0000000..fdce322 --- /dev/null +++ b/docs/RELEASE_NOTES_GUIDE.md @@ -0,0 +1,108 @@ +# Przewodnik po Release Notes - NordaBiz + +## Struktura Release Notes + +Release notes są zdefiniowane w pliku `app.py` w funkcji `release_notes()` jako lista słowników. + +```python +{ + 'version': 'v1.XX.0', + 'date': 'DD miesiąca RRRR', + 'badges': ['new', 'improve', 'fix', 'security'], + 'new': [...], # Nowości + 'improve': [...], # Ulepszenia + 'fix': [...], # Naprawione błędy + 'security': [...], # Bezpieczeństwo (opcjonalne) +} +``` + +## Zasady tworzenia wpisów + +### 1. Sortowanie od najważniejszych + +Wpisy w każdej sekcji (`new`, `improve`, `fix`, `security`) sortujemy: +- **Na górze:** Najważniejsze zmiany (mega ważne) +- **Na dole:** Mniej istotne szczegóły + +### 2. Wytłuszczanie mega ważnych zmian + +Używamy HTML `` dla najważniejszych funkcjonalności: + +```python +'new': [ + 'NordaGPT: Upgrade do Gemini 3 - najnowszy model AI', + 'PWA: Aplikacja mobilna - instalacja na iOS/Android', + 'Aktualności: Obsługa wielu kategorii', # mniej ważne - bez bold +] +``` + +### 3. Kategorie zmian + +| Badge | Ikona | Opis | +|-------|-------|------| +| `new` | ✨ | Nowe funkcjonalności | +| `improve` | ⚡ | Ulepszenia istniejących funkcji | +| `fix` | 🔧 | Naprawione błędy | +| `security` | 🔒 | Zmiany bezpieczeństwa | + +### 4. Format wpisu + +``` +'Moduł: Funkcja główna - krótki opis' +'Moduł: Funkcja drugorzędna - szczegóły' +``` + +## Przykład dobrze sformatowanego release + +```python +{ + 'version': 'v1.20.0', + 'date': '29 stycznia 2026', + 'badges': ['new', 'improve', 'fix'], + 'new': [ + # MEGA WAŻNE - na górze, z + 'NordaGPT: Upgrade do Gemini 3 Flash Preview - najnowszy model Google AI', + 'NordaGPT: Dwa modele do wyboru - Flash (darmowy) i Pro (płatny)', + 'PWA: Aplikacja mobilna - możliwość instalacji na telefonie', + # Mniej ważne - niżej, bez bold + 'NordaGPT: Wyświetlanie szacowanego kosztu miesięcznego', + 'Aktualności: Obsługa wielu kategorii', + ], + 'improve': [ + 'Strona główna: Nowa ikona NordaGPT', + ], + 'fix': [ + 'Tablica B2B: Naprawiono błąd 500', + ], +}, +``` + +## Checklist przed dodaniem release + +- [ ] Wersja zwiększona (major.minor.patch) +- [ ] Data w formacie "DD miesiąca RRRR" +- [ ] Wpisy posortowane od najważniejszych +- [ ] Mega ważne zmiany wytłuszczone `` +- [ ] Odpowiednie badges (`new`, `improve`, `fix`, `security`) +- [ ] Składnia Python poprawna (`python3 -m py_compile app.py`) + +## Lokalizacja plików + +- **Release notes:** `app.py` → funkcja `release_notes()` (około linii 10250) +- **Szablon HTML:** `templates/release_notes.html` +- **Strona:** https://nordabiznes.pl/release-notes + +## Deploy po zmianach + +```bash +# 1. Weryfikacja składni +python3 -m py_compile app.py + +# 2. Commit +git add app.py +git commit -m "docs: Release notes vX.XX.0" + +# 3. Push i deploy +git push origin master && git push inpi master +ssh maciejpi@10.22.68.249 "cd /var/www/nordabiznes && sudo -u www-data git pull && sudo systemctl restart nordabiznes" +``` diff --git a/templates/release_notes.html b/templates/release_notes.html index 144a436..d06fddd 100755 --- a/templates/release_notes.html +++ b/templates/release_notes.html @@ -135,6 +135,7 @@ .change-category.new h4::before { content: '✨'; } .change-category.fix h4::before { content: '🔧'; } .change-category.improve h4::before { content: '⚡'; } + .change-category.security h4::before { content: '🔒'; } .change-category.beta h4::before { content: '🧪'; } .change-list { @@ -276,7 +277,7 @@

Nowości

    {% for item in release.new %} -
  • {{ item }}
  • +
  • {{ item|safe }}
  • {% endfor %}
@@ -287,7 +288,7 @@

Ulepszenia

    {% for item in release.improve %} -
  • {{ item }}
  • +
  • {{ item|safe }}
  • {% endfor %}
@@ -298,7 +299,18 @@

Naprawione

    {% for item in release.fix %} -
  • {{ item }}
  • +
  • {{ item|safe }}
  • + {% endfor %} +
+ + {% endif %} + + {% if release.security %} +
+

Bezpieczeństwo

+
    + {% for item in release.security %} +
  • {{ item|safe }}
  • {% endfor %}
@@ -309,7 +321,7 @@

W fazie testów (BETA)

    {% for item in release.beta %} -
  • {{ item }}
  • +
  • {{ item|safe }}
  • {% endfor %}