Départements sous forme de liste, ajout des titulaires par département #66

This commit is contained in:
Colin Maudry
2026-01-28 11:57:41 +01:00
parent 1c4fccac6e
commit 9a1e5bee63
3 changed files with 49 additions and 26 deletions
+2 -1
View File
@@ -135,7 +135,8 @@ navbar = dbc.Navbar(
) )
) )
for page in page_registry.values() for page in page_registry.values()
if page["name"] not in ["Acheteur", "Titulaire", "Marché"] if page["name"]
in ["Recherche", "À propos", "Tableau", "Statistiques"]
], ],
className="ms-auto", className="ms-auto",
navbar=True, navbar=True,
+30 -13
View File
@@ -1,7 +1,7 @@
import polars as pl import polars as pl
from dash import Input, Output, callback, dcc, html, register_page from dash import Input, Output, callback, dcc, html, register_page
from src.utils import departements, df_acheteurs_departement from src.utils import departements, df_acheteurs_departement, df_titulaires_departement
name = "Département" name = "Département"
@@ -37,25 +37,42 @@ layout = html.Div(
) )
def departement_marches(url): def departement_marches(url):
departement = url.split("/")[-1] departement = url.split("/")[-1]
acheteurs = []
df = df_acheteurs_departement.filter( def make_link_list(org_type) -> list:
pl.col("acheteur_departement_code") == departement link_list = []
) if org_type == "acheteur":
df = df_acheteurs_departement
elif org_type == "titulaire":
df = df_titulaires_departement
else:
raise ValueError
df = df.filter(pl.col(f"{org_type}_departement_code") == departement)
for row in df.iter_rows(named=True): for row in df.iter_rows(named=True):
p = html.P( li = html.Li(
[ [
dcc.Link( dcc.Link(
row["acheteur_nom"], row[f"{org_type}_nom"],
href=url + f"/{row['acheteur_id']}", href=url + f"/{row[f'{org_type}_id']}",
title=f"Marchés publics de {row['acheteur_nom']}", title=f"Marchés publics de {row[f'{org_type}_nom']}",
), ),
" ", " ",
dcc.Link( dcc.Link(
"(page dédiée)", "(page dédiée)",
href=f"/acheteurs/{row['acheteur_id']}", href=f"/{org_type}s/{row[f'{org_type}_id']}",
title=f"Page dédiée aux marchés publics de {row['acheteur_nom']}", title=f"Page dédiée aux marchés publics de {row[f'{org_type}_nom']}",
), ),
] ]
) )
acheteurs.append(p) link_list.append(li)
return acheteurs return link_list
content = [
html.H3("Acheteurs publics du département"),
html.Ul(make_link_list("acheteur")),
html.H3("Titulaires du département"),
html.Ul(make_link_list("titulaire")),
]
return content
+6 -1
View File
@@ -14,7 +14,12 @@ register_page(
layout = html.Div( layout = html.Div(
[ [
html.P(dcc.Link(d["departement"], href=f"/departements/{k}")) html.H3("partements"),
html.Ul(
[
html.Li(dcc.Link(d["departement"], href=f"/departements/{k}"))
for k, d in departements.items() for k, d in departements.items()
] ]
),
]
) )