Ajout de liens vers l'annuaire des entreprises

This commit is contained in:
Colin Maudry
2025-05-31 16:26:21 +02:00
parent fadb4b1930
commit 8ad69b4bae
2 changed files with 35 additions and 3 deletions
+10 -3
View File
@@ -2,11 +2,14 @@ from dash import html, dcc, dash_table, register_page, Input, Output, State, cal
from dotenv import load_dotenv from dotenv import load_dotenv
import os import os
import polars as pl import polars as pl
from src.utils import split_filter_part from src.utils import split_filter_part, add_annuaire_link
load_dotenv() 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" title = "Tableau"
register_page(__name__, path="/", title=f"decp.info - {title}", name=title, order=1) register_page(__name__, path="/", title=f"decp.info - {title}", name=title, order=1)
@@ -19,7 +22,10 @@ datatable = dash_table.DataTable(
page_action="custom", page_action="custom",
filter_action="custom", filter_action="custom",
filter_options={"case": "insensitive", "placeholder_text": "Filtrer..."}, 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_columns=[],
selected_rows=[], selected_rows=[],
# sort_action="native", # sort_action="native",
@@ -38,6 +44,7 @@ datatable = dash_table.DataTable(
}, },
], ],
data_timestamp=0, data_timestamp=0,
markdown_options={"html": True},
) )
layout = [ layout = [
+25
View File
@@ -1,3 +1,5 @@
import polars as pl
operators = [ operators = [
["s<", "<"], ["s<", "<"],
["s>", ">"], ["s>", ">"],
@@ -17,3 +19,26 @@ def split_filter_part(filter_part):
return name, operator_group[1], value return name, operator_group[1], value
return [None] * 3 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' <a href="https://annuaire-entreprises.data.gouv.fr/etablissement/'
+ pl.col("titulaire_id")
+ '" target="_blank">📑</a>'
)
.otherwise(pl.col("titulaire_id"))
.alias("titulaire_id")
)
df = df.with_columns(
(
pl.col("acheteur_id")
+ f' <a href="https://annuaire-entreprises.data.gouv.fr/etablissement/'
+ pl.col("acheteur_id")
+ '" target="_blank">📑</a>'
).alias("acheteur_id")
)
return df