Crisis V7 MEGA: sufinanciranje_sport + panel + CRM auth
DB: - pgz_sport.sufinanciranje_sport.je_klub flag (RSS programi/totals false) - pgz_sport.sufinanciranje_sport.klub_id matched Endpoints: - /v2/potpore/by-year: samo_klubovi=True default + davatelj filter Frontend: - sport2.html PANEL FORCE HIDE CSS (right:-100vw default) - crm_v2.html: redirect to /login only on actual 401, not on page load
This commit is contained in:
+19
-7
@@ -4960,19 +4960,31 @@ def proracun_sport(godina: int = None):
|
||||
# POTPORE — by year filter
|
||||
# ═══════════════════════════════════════════════════════
|
||||
@router.get("/potpore/by-year")
|
||||
def potpore_by_year(godina: int = None, q: str = ""):
|
||||
"""Sufinanciranje za specifičnu godinu."""
|
||||
def potpore_by_year(godina: int = None, q: str = "", samo_klubovi: bool = True, davatelj: str = None):
|
||||
"""Sufinanciranje za specifičnu godinu — samo_klubovi=True izbacuje programe/totals/services."""
|
||||
import datetime
|
||||
yr = godina or datetime.date.today().year
|
||||
like = f"%{q}%" if q else "%"
|
||||
rows = db_query("""
|
||||
SELECT korisnik, sport, iznos_eur, vrsta, napomena, izvor, source_url, godina,
|
||||
(SELECT k.id FROM pgz_sport.klubovi k WHERE LOWER(k.naziv) LIKE LOWER('%%'||LEFT(korisnik,20)||'%%') AND k.aktivan=true LIMIT 1) as klub_id
|
||||
|
||||
where = ["godina = %s", "LOWER(COALESCE(korisnik,'')) LIKE LOWER(%s)"]
|
||||
params = [yr, like]
|
||||
|
||||
if samo_klubovi:
|
||||
where.append("(je_klub IS NULL OR je_klub = true)")
|
||||
|
||||
if davatelj == 'rijeka':
|
||||
where.append("izvor ILIKE '%%rijeka.hr%%'")
|
||||
elif davatelj == 'pgz':
|
||||
where.append("izvor ILIKE '%%sport-pgz%%'")
|
||||
|
||||
sql = f"""
|
||||
SELECT id, korisnik, sport, iznos_eur, vrsta, napomena, izvor, source_url, godina, klub_id, je_klub
|
||||
FROM pgz_sport.sufinanciranje_sport
|
||||
WHERE godina = %s AND LOWER(COALESCE(korisnik,'')) LIKE LOWER(%s)
|
||||
WHERE {' AND '.join(where)}
|
||||
ORDER BY iznos_eur DESC NULLS LAST
|
||||
LIMIT 500
|
||||
""", (yr, like))
|
||||
"""
|
||||
rows = db_query(sql, params)
|
||||
total = sum(float(r.get('iznos_eur') or 0) for r in rows)
|
||||
return {"godina": yr, "count": len(rows), "total": total, "results": rows}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user