titulaire.py : migration vers query_marches et schema depuis src.db (#71)

This commit is contained in:
Colin Maudry
2026-04-16 11:07:07 +02:00
parent e89311f3ab
commit a31d996812
+6 -9
View File
@@ -15,6 +15,7 @@ from dash import (
register_page, register_page,
) )
from src.db import query_marches, schema
from src.figures import ( from src.figures import (
DataTable, DataTable,
get_distance_histogram, get_distance_histogram,
@@ -24,7 +25,6 @@ from src.figures import (
) )
from src.utils import ( from src.utils import (
columns, columns,
df,
df_titulaires, df_titulaires,
filter_table_data, filter_table_data,
format_number, format_number,
@@ -69,7 +69,7 @@ datatable = html.Div(
sort_action="custom", sort_action="custom",
page_size=10, page_size=10,
hidden_columns=[], hidden_columns=[],
columns=[{"id": col, "name": col} for col in df.columns], columns=[{"id": col, "name": col} for col in schema.names()],
), ),
) )
@@ -339,21 +339,18 @@ def update_titulaire_stats(data):
) )
def get_titulaire_marches_data(url, titulaire_year: str) -> tuple: def get_titulaire_marches_data(url, titulaire_year: str) -> tuple:
titulaire_siret = url.split("/")[-1] titulaire_siret = url.split("/")[-1]
lff = df.lazy() lff = query_marches(
lff = lff.filter( "titulaire_id = ? AND titulaire_typeIdentifiant = 'SIRET'",
(pl.col("titulaire_id") == titulaire_siret) (titulaire_siret,),
& (pl.col("titulaire_typeIdentifiant") == "SIRET") ).lazy()
)
if titulaire_year and titulaire_year != "Toutes les années": if titulaire_year and titulaire_year != "Toutes les années":
lff = lff.filter( lff = lff.filter(
pl.col("dateNotification").cast(pl.String).str.starts_with(titulaire_year) pl.col("dateNotification").cast(pl.String).str.starts_with(titulaire_year)
) )
lff = lff.sort(["dateNotification", "uid"], descending=True, nulls_last=True) lff = lff.sort(["dateNotification", "uid"], descending=True, nulls_last=True)
lff = lff.fill_null("") lff = lff.fill_null("")
dff: pl.DataFrame = lff.collect(engine="streaming") dff: pl.DataFrame = lff.collect(engine="streaming")
download_disabled, download_text, download_title = get_button_properties(dff.height) download_disabled, download_text, download_title = get_button_properties(dff.height)
data = dff.to_dicts() data = dff.to_dicts()
return data, download_disabled, download_text, download_title return data, download_disabled, download_text, download_title