diff --git a/pgz_sport_api.py b/pgz_sport_api.py index b4f7b7f..d13178f 100644 --- a/pgz_sport_api.py +++ b/pgz_sport_api.py @@ -2394,7 +2394,7 @@ def savezi_financirani(sport: str = None): # DOKUMENTI ENDPOINTS — godišnjaci, publikacije, sport-savez izdanja # ═══════════════════════════════════════════════════════════════════ @app.get("/api/v2/dokumenti") -def dokumenti_list(vrsta: str = None, sport: str = None, godina: int = None, q: str = None, limit: int = 100): +def dokumenti_list(vrsta: str = None, sport: str = None, godina: int = None, q: str = None, organizacija: str = None, izvor: str = None, limit: int = 100): """Lista dokumenata: godišnjaci, publikacije, etc.""" where = ["aktivan = true"] params = [] @@ -2404,6 +2404,10 @@ def dokumenti_list(vrsta: str = None, sport: str = None, godina: int = None, q: where.append("sport = %s"); params.append(sport) if godina: where.append("godina = %s"); params.append(godina) + if organizacija: + where.append("organizacija ILIKE %s"); params.append(f"%%{organizacija}%%") + if izvor: + where.append("organizacija ILIKE %s"); params.append(f"%%{izvor}%%") if q: where.append("(title ILIKE %s OR sadrzaj_summary ILIKE %s OR organizacija ILIKE %s)") params.extend([f"%%{q}%%"]*3) diff --git a/static/dokumenti.html b/static/dokumenti.html index 3838a90..be9de90 100644 --- a/static/dokumenti.html +++ b/static/dokumenti.html @@ -107,6 +107,7 @@ async function loadDocs(){ if(vrsta) params.set('vrsta', vrsta); if(sport) params.set('sport', sport); if(q) params.set('q', q); + if(org) params.set('organizacija', org); params.set('limit', '500'); document.getElementById('docs-grid').innerHTML = '
Učitavanje…
'; @@ -114,12 +115,9 @@ async function loadDocs(){ try{ const r = await fetch('/sport/api/v2/dokumenti?'+params.toString()); const d = await r.json(); - let rows = d.rows || []; - if(org){ - rows = rows.filter(row => (row.organizacija||'').includes(org)); - } + let rows = d.rows || d.dokumenti || []; - document.getElementById('stats').innerHTML = `${rows.length} dokumenata · ${d.count} ukupno (filter: ${[vrsta,sport,org,q].filter(Boolean).join(', ') || '—'})`; + document.getElementById('stats').innerHTML = `${rows.length} dokumenata po filtru (filter: ${[vrsta,sport,org,q].filter(Boolean).join(', ') || 'bez filtera'})`; if(rows.length === 0){ document.getElementById('docs-grid').innerHTML = '
Nema dokumenata po filtru
';