docs: Notatki z prac 2026-01-29
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
25702a808a
commit
13dd85142f
103
docs/notes/2026-01-29.md
Normal file
103
docs/notes/2026-01-29.md
Normal file
@ -0,0 +1,103 @@
|
||||
# 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 wideo
|
||||
- `templates/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` - `CATEGORIES` i `CATEGORY_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` - routes `admin_announcements_new`, `admin_announcements_edit`, `announcements_list`
|
||||
- `database.py` - model `Announcement` z nowymi metodami
|
||||
- `templates/admin/announcements_form.html` - checkboxy kategorii
|
||||
- `templates/announcements/list.html`, `detail.html` - wyświetlanie wielu badge'ów
|
||||
|
||||
**Składnia SQLAlchemy dla ARRAY:**
|
||||
```python
|
||||
# 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
|
||||
|
||||
1. `feat(announcements): Obsługa wielu kategorii dla ogłoszeń`
|
||||
2. `fix: Poprawka składni SQLAlchemy dla ARRAY contains`
|
||||
3. `fix: 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]))`
|
||||
Loading…
Reference in New Issue
Block a user