From 8ad69b4baec58117ebd86ea82f4d70924b22ecd0 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Sat, 31 May 2025 16:26:21 +0200 Subject: [PATCH] Ajout de liens vers l'annuaire des entreprises --- src/pages/home.py | 13 ++++++++++--- src/utils.py | 25 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/pages/home.py b/src/pages/home.py index 7696f31..00ed52a 100644 --- a/src/pages/home.py +++ b/src/pages/home.py @@ -2,11 +2,14 @@ from dash import html, dcc, dash_table, register_page, Input, Output, State, cal from dotenv import load_dotenv import os import polars as pl -from src.utils import split_filter_part +from src.utils import split_filter_part, add_annuaire_link load_dotenv() -df = pl.scan_parquet(os.getenv("DATA_FILE_PARQUET_PATH")) +df: pl.LazyFrame = pl.scan_parquet(os.getenv("DATA_FILE_PARQUET_PATH")) + +# Ajout des liens vers l'annuaire +df = add_annuaire_link(df) title = "Tableau" register_page(__name__, path="/", title=f"decp.info - {title}", name=title, order=1) @@ -19,7 +22,10 @@ datatable = dash_table.DataTable( page_action="custom", filter_action="custom", filter_options={"case": "insensitive", "placeholder_text": "Filtrer..."}, - columns=[{"name": i, "id": i} for i in df.collect_schema().names()], + columns=[ + {"name": i, "id": i, "presentation": "markdown"} + for i in df.collect_schema().names() + ], selected_columns=[], selected_rows=[], # sort_action="native", @@ -38,6 +44,7 @@ datatable = dash_table.DataTable( }, ], data_timestamp=0, + markdown_options={"html": True}, ) layout = [ diff --git a/src/utils.py b/src/utils.py index d422ada..a10f729 100644 --- a/src/utils.py +++ b/src/utils.py @@ -1,3 +1,5 @@ +import polars as pl + operators = [ ["s<", "<"], ["s>", ">"], @@ -17,3 +19,26 @@ def split_filter_part(filter_part): return name, operator_group[1], value return [None] * 3 + + +def add_annuaire_link(df: pl.LazyFrame): + df = df.with_columns( + pl.when(pl.col("titulaire_typeIdentifiant") == "SIRET") + .then( + pl.col("titulaire_id") + + f' 📑' + ) + .otherwise(pl.col("titulaire_id")) + .alias("titulaire_id") + ) + df = df.with_columns( + ( + pl.col("acheteur_id") + + f' 📑' + ).alias("acheteur_id") + ) + return df