4.9 KiB
4.9 KiB
HANDOFF: PGZ Sport Portal — Sprint 03.05.2026 17:15
Datum: 03.05.2026 17:15
Autor: Claude Sonnet 4.6
Status: 3-STRIKE ACTIVE — sve tvrdnje verificirane
STANJE SERVERA (verified 17:15)
pgz-sport.service: ACTIVE (port 8095)
nginx: OK (no-cache headers na sport.rinet.one)
Fail count: 0 (systemctl list-units --state=failed)
ŠTO RADI (endpoints 200 verified)
| Endpoint | Status |
|---|---|
| /api/v2/sport/objekti | ✅ 200 |
| /api/v2/analytics/budget-score | ✅ 200 |
| /api/v2/analytics/savez-drill?savez_id=N | ✅ 200 |
| /api/v2/analytics/proracun-trend | ✅ 200 |
| /api/v2/analytics/filter-options | ✅ 200 |
| /api/v2/rno | ✅ 200 |
| /api/v2/hns-natjecanja | ✅ 200 |
| /api/v2/godisnjaci/search (POST) | ✅ 200 |
| /sport/ HTML | ✅ 200, no-cache |
ŠTO JE U HTML-u (verified grepcountom)
| Funkcija | Ref. |
|---|---|
| pageObjekti | 1 (postoji) |
| pageAnalytics | 2 (postoji) |
| pageRno | 1 (postoji) |
| pageHns | 1 (postoji) |
| pageGodisnjaci | 3 (postoji) |
| toggleNavSec | 2 (collapsible nav) |
| pushState (URL hash) | 2 (hash routing) |
ŠTO NIJE RIJEŠENO (problemi s prošle sesije)
1. #objekti stranica — POSTOJI ali nije vidljiva u nav?
- pageObjekti je u HTML-u,
objektije u NAV (Registri sekcija) - Nav je collapsible — Registri sekcija je OPEN by default
- Ako se ne vidi: hard refresh (Ctrl+Shift+R)
- API: 106 objekata, sve kategorije, filtri tip/grad
2. MATRIX POPUNJENOSTI — NESTAO
- Bio u starijoj verziji (negdje između bak.matrix.* backupova)
- NE POSTOJI u trenutnom HTML-u
- Treba rebuild: matrica savezi × kategorije podataka (clanovi, lijecnicki, dokumenti, fin...)
- Backup gdje je bio: index.html.bak.matrix.1777744755 (20:43, 02.05)
3. OBRASCI / PREDLOŠCI — U DB, NEMA PAGE
pgz_sport.form_templatesima 15 rows u DBpageObrasci/pageFormTemplatesNE POSTOJI u HTML-u- Treba dodati: API endpoint + frontend page
- Endpoint za add: GET /api/v2/form-templates
4. AUTOTROLEJ — NIKAD NIJE BIO DIO PGŽ SPORT
- Krivo sam ga stavio u "na horizontu" u ranijoj sesiji
- Nema nikakve veze s PGŽ sport portalom
- Memorizirano pogrešno iz generalnog Ri.NET konteksta
- BRISATI iz TODO liste za ovaj projekt
DB STANJE
pgz_sport.klubovi (aktivnih): 1658
pgz_sport.sportski_objekti: 106
pgz_sport.form_templates: 15
pgz_sport.savezi (aktivnih): 40-ish relevantnih PGŽ
Deaktivirano danas (non-sport): 23 organizacije
- Rotary (2), Lions (1), Rotaract (1)
- Kinološka društva (6)
- Inovatori/Crnogorci (4)
- Maketari/Brodomaketari (3)
- Oldtimeri (5)
- Izviđači (1)
KNOWLEDGE BASE STANJE
Qdrant kolekcije (relevantne za sport):
pgz_sport_v1: 9,xxx vektora
pgz_godisnjaci: 4,999 vektora (godišnjaci ZSP PGZ 2006-2024)
pgz_sport_dokumenti_v1: postoji
legal_v2: postoji (zakoni)
dabi.knowledge kategorije:
legal_deep_zakon: 71,612 facts
legal_deep_pravilnik: 68,661 facts
pgz_sport_online: 7 facts (scrape today)
legal.articles (DB): 309,819 rows
GAP: HOO pravilnici za sport NISU posebno scrapirani
GAP: Godišnjaci su embeddani u Qdrant ali nisu u SQL structured tablicama
URL ROUTING
Sad svaka stranica ima hash u URL-u:
https://api.rinet.one/sport/#dashboard
https://api.rinet.one/sport/#analytics
https://api.rinet.one/sport/#objekti
itd.
Implementirano: history.pushState + popstate handler
BROWSER GREŠKA (nije naša)
"runtime.lastError: back/forward cache"
→ Chrome extension greška (Grammarly/LastPass/slično)
→ Apsolutno nema veze s portalom
PRIORITETI ZA SLJEDEĆU SESIJU
P1 — HITAN (Damir je tražio, ne postoji):
- Matrix popunjenosti — rebuild iz bak.matrix.1777744755
- Obrasci/predlošci — API + page (15 u DB)
P2 — Važno:
- Dedup sportski objekti (ima duplikata — Kantrida ×4, Krimeja ×3...)
- HOO pravilnici scraper
- Strukturirani parse godišnjaka → SQL tablice
P3 — Nice to have:
- Sport/grad normalizacija u dropdown-ima (mix case)
- Koordinate (lat/lng) za objekte — većina null
- ERP za klubove (member self-service)
KLJUČNE DATOTEKE
HTML: /opt/pgz-sport/static/index.html (7435 linija)
Backend: /opt/pgz-sport/pgz_sport_api.py
Router: /opt/pgz-sport/pgz_sport_v2_router.py (4300+ linija)
Service: systemctl restart pgz-sport
Log: journalctl -u pgz-sport -n 50 --no-pager
Backups: /opt/pgz-sport/static/index.html.bak.*
DOBRI BACKUPI:
.bak.rno — 407KB, 16:15, dobra baza (bez matrix, bez RNO/HNS pages)
.bak.allfix.1777765254 — 408KB, 01:40, sve ispravne verzije stranica
NAPOMENA ZA SLJEDEĆI CLAUDE
Read before anything:
- /opt/ai-rinet/CLAUDE.md
- VRHOVNI_ZAKONI.md
- Ovaj file
3-STRIKE RULE AKTIVAN: sljedeća greška = manual mode.
NIKAD ne diraj /opt/rinet/ (PROD) bez explicit approve.