departement.py : requêtes DuckDB sur acheteurs_departement et titulaires_departement (#71)

This commit is contained in:
Colin Maudry
2026-04-16 11:07:32 +02:00
parent a31d996812
commit cba3128b8f
+29 -16
View File
@@ -1,7 +1,7 @@
import polars as pl
from dash import Input, Output, callback, dcc, html, register_page
from src.utils import departements, df_acheteurs_departement, df_titulaires_departement
from src.db import get_cursor
from src.utils import departements
name = "Département"
@@ -39,29 +39,42 @@ def departement_marches(url):
departement = url.split("/")[-1]
def make_link_list(org_type) -> list:
link_list = []
if org_type == "acheteur":
df = df_acheteurs_departement
elif org_type == "titulaire":
df = df_titulaires_departement
else:
table = (
"acheteurs_departement"
if org_type == "acheteur"
else "titulaires_departement"
if org_type == "titulaire"
else None
)
if table is None:
raise ValueError
col_prefix = org_type
rows = (
get_cursor()
.execute(
f"SELECT {col_prefix}_id, {col_prefix}_nom "
f"FROM {table} "
f"WHERE {col_prefix}_departement_code = ? "
f"ORDER BY {col_prefix}_nom",
[departement],
)
.fetchall()
)
df = df.filter(pl.col(f"{org_type}_departement_code") == departement)
for row in df.iter_rows(named=True):
link_list = []
for org_id, org_nom in rows:
li = html.Li(
[
dcc.Link(
row[f"{org_type}_nom"],
href=url + f"/{org_type}/{row[f'{org_type}_id']}",
title=f"Marchés publics de {row[f'{org_type}_nom']}",
org_nom,
href=url + f"/{org_type}/{org_id}",
title=f"Marchés publics de {org_nom}",
),
" ",
dcc.Link(
"(page dédiée)",
href=f"/{org_type}s/{row[f'{org_type}_id']}",
title=f"Page dédiée aux marchés publics de {row[f'{org_type}_nom']}",
href=f"/{org_type}s/{org_id}",
title=f"Page dédiée aux marchés publics de {org_nom}",
),
]
)