3.9 KiB
3.9 KiB
Notatki z prac nad NordaBiz - 2026-01-29
Wykonane zadania
1. Naprawa błędów 500 w blueprintach
- Problem:
url_for('classifieds_index')bez prefixu blueprintu powodował 500 - Rozwiązanie: Zmiana na
url_for('.classifieds_index')(kropka = aktualny blueprint) - Pliki:
blueprints/community/classifieds/routes.py,calendar/routes.py,contacts/routes.py
2. Aktualizacja ikony NordaGPT na stronie głównej
- Problem: Stara ikona robota zamiast nowej ikony NordaGPT
- Rozwiązanie: Podmiana na SVG z
/static/img/nordagpt-icon.svg - Plik:
templates/index.html
3. Integracja wideo z portalem
- Dodano: Modal player z wideo w sekcji Edukacja
- Pliki:
blueprints/education/routes.py- lista materiałów z URL wideotemplates/education/index.html- player, thumbnails, badge "Nowe"
- Wideo:
static/videos/nordabiz-zajawka-final.mp4
4. Poprawki wideo zajawka (Remotion)
- Zmiana: Ostatnia scena - logo Norda Biznes zamiast ikony NordaGPT
- Poprawka: Polskie znaki ("Twoja sieć kontaktów", "Izba Przedsiębiorców NORDA")
- Plik:
remotion/my-video/src/NordaBizZajawka.tsx
5. Ukrycie strony /aktualnosci
- Strona pozostaje w kodzie, ale nie jest linkowana
- Zostanie udostępniona w przyszłości na decyzję użytkownika
6. Reorganizacja kategorii ogłoszeń
Nowe kategorie:
| Kod | Etykieta |
|---|---|
internal |
Wewnętrzne |
external |
Zewnętrzne |
event |
Wydarzenie |
opportunity |
Okazja biznesowa |
partnership |
Partnerstwo |
- Plik:
database.py-CATEGORIESiCATEGORY_LABELS
7. Usunięcie "Nowi członkowie" z footera
- Plik:
templates/base.html
8. Obsługa wielu kategorii dla ogłoszeń (GŁÓWNA FUNKCJONALNOŚĆ)
Zmiany w bazie danych:
- Nowa kolumna:
categories TEXT[](tablica PostgreSQL) - Migracja:
database/migrations/029_add_categories_array.sql - Indeks GIN dla szybkiego wyszukiwania
Zmiany w backendzie:
- Formularz admin: checkboxy zamiast select (wiele kategorii)
- Filtrowanie: operator PostgreSQL
@>dla tablic - Zachowanie kompatybilności wstecznej (pole
category)
Pliki:
app.py- routesadmin_announcements_new,admin_announcements_edit,announcements_listdatabase.py- modelAnnouncementz nowymi metodamitemplates/admin/announcements_form.html- checkboxy kategoriitemplates/announcements/list.html,detail.html- wyświetlanie wielu badge'ów
Składnia SQLAlchemy dla ARRAY:
# BŁĘDNE (generuje LIKE):
Announcement.categories.contains([category])
# POPRAWNE (operator @>):
from sqlalchemy.dialects.postgresql import array as pg_array
query.filter(Announcement.categories.op('@>')(pg_array([category])))
9. Aktualizacja istniejących ogłoszeń
- ID 11 (Baza zakwaterowania):
{external, opportunity} - ID 12 (Tytani Przedsiębiorczości):
{external, event}
Błędy naprawione podczas sesji
| Błąd | Przyczyna | Rozwiązanie |
|---|---|---|
500 na /tablica/nowe |
Brak prefixu . w url_for |
Dodanie kropki |
500 na /ogloszenia?category=X |
.any() nie istnieje dla ARRAY |
Użycie .op('@>') |
| 500 (malformed array literal) | .contains() generuje LIKE |
Użycie pg_array() |
Commity
feat(announcements): Obsługa wielu kategorii dla ogłoszeńfix: Poprawka składni SQLAlchemy dla ARRAY containsfix: Użycie operatora @> dla PostgreSQL ARRAY contains
Do zrobienia (następna sesja)
- Nagranie tutorialu NordaGPT (30s) z użyciem GIFów z portalu
- Integracja z NotebookLM (podcast o portalu)
- Widget wideo na dashboardzie dla zalogowanych użytkowników
Uwagi techniczne
- PostgreSQL ARRAY wymaga operatora
@>do sprawdzania zawierania - SQLAlchemy
.contains()dla TEXT[] generuje błędne zapytanie LIKE - Metoda
.any()nie istnieje dla kolumn ARRAY w SQLAlchemy 2.0 - Prawidłowa składnia:
column.op('@>')(pg_array([value]))