Classe partagée pour la génération de datatables #56
This commit is contained in:
+5
-34
@@ -1,6 +1,7 @@
|
||||
import polars as pl
|
||||
from dash import dash_table, html
|
||||
from dash import html
|
||||
|
||||
from src.figures import DataTable
|
||||
from utils import add_links_in_dict, format_values, setup_table_columns
|
||||
|
||||
|
||||
@@ -15,7 +16,7 @@ def get_top_org_table(data, org_type: str):
|
||||
dff_nb = dff.group_by(f"{org_type}_id", f"{org_type}_nom", "distance").agg(
|
||||
pl.len().alias("Attributions"), pl.sum("montant").alias("montant")
|
||||
)
|
||||
dff_nb = dff_nb.sort(by="montant", descending=True)
|
||||
dff_nb = dff_nb.sort(by="montant", descending=True, nulls_last=True)
|
||||
dff_nb = dff_nb.cast(pl.String)
|
||||
dff_nb = dff_nb.fill_null("")
|
||||
dff_nb = format_values(dff_nb)
|
||||
@@ -25,41 +26,11 @@ def get_top_org_table(data, org_type: str):
|
||||
data = dff_nb.to_dicts()
|
||||
data = add_links_in_dict(data, f"{org_type}")
|
||||
|
||||
return dash_table.DataTable(
|
||||
return DataTable(
|
||||
dtid=f"top10_{org_type}",
|
||||
data=data,
|
||||
markdown_options={"html": True},
|
||||
page_action="native",
|
||||
page_size=10,
|
||||
columns=columns,
|
||||
cell_selectable=False,
|
||||
tooltip_header=tooltip,
|
||||
style_cell_conditional=[
|
||||
{
|
||||
"if": {"column_id": "objet"},
|
||||
"minWidth": "350px",
|
||||
"textAlign": "left",
|
||||
"overflow": "hidden",
|
||||
"lineHeight": "14px",
|
||||
"whiteSpace": "normal",
|
||||
"fontSize": "85%",
|
||||
},
|
||||
{
|
||||
"if": {"column_id": "acheteur_nom"},
|
||||
"minWidth": "200px",
|
||||
"textAlign": "left",
|
||||
"overflow": "hidden",
|
||||
"lineHeight": "16px",
|
||||
# "fontSize": "85%",
|
||||
"whiteSpace": "normal",
|
||||
},
|
||||
{
|
||||
"if": {"column_id": "titulaire_nom"},
|
||||
"minWidth": "200px",
|
||||
"textAlign": "left",
|
||||
"overflow": "hidden",
|
||||
"lineHeight": "16px",
|
||||
"whiteSpace": "normal",
|
||||
# "fontSize": "85%",
|
||||
},
|
||||
],
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user