Amélioration de l'affichage et du téléchargement des champs source et sourceOpenData
This commit is contained in:
+15
-2
@@ -7,6 +7,7 @@ from dotenv import load_dotenv
|
||||
|
||||
from src.utils import (
|
||||
add_annuaire_link,
|
||||
add_resource_link,
|
||||
booleans_to_strings,
|
||||
format_number,
|
||||
lf,
|
||||
@@ -43,6 +44,9 @@ lf = lf.fill_null("")
|
||||
# Ajout des liens vers l'annuaire
|
||||
lf = add_annuaire_link(lf)
|
||||
|
||||
# Ajout des liens open data
|
||||
lf = add_resource_link(lf)
|
||||
|
||||
schema = lf.collect_schema()
|
||||
|
||||
|
||||
@@ -220,11 +224,20 @@ def update_table(page_current, page_size, filter_query, sort_by, data_timestamp)
|
||||
State("table", "hidden_columns"),
|
||||
prevent_initial_call=True,
|
||||
)
|
||||
def download_data(n_clicks, hidden_columns):
|
||||
def download_data(n_clicks, hidden_columns: list = None):
|
||||
df_to_download = df_filtered.clone()
|
||||
|
||||
print(df_to_download.columns)
|
||||
|
||||
# Rétablissement des colonnes source et sourceOpenData (voir add_resource_link)
|
||||
df_to_download = df_to_download.with_columns(
|
||||
pl.col("source").str.extract(r'href="(.*?)"').alias("sourceOpenData"),
|
||||
pl.col("source").str.extract(r'">(.*?)<').alias("source"),
|
||||
)
|
||||
|
||||
# Les colonnes masquées sont supprimées
|
||||
df_to_download = df_to_download.drop(hidden_columns)
|
||||
if hidden_columns:
|
||||
df_to_download = df_to_download.drop(hidden_columns)
|
||||
|
||||
def to_bytes(buffer):
|
||||
df_to_download.write_excel(buffer, worksheet="DECP")
|
||||
|
||||
+14
-4
@@ -40,8 +40,18 @@ def split_filter_part(filter_part):
|
||||
return [None] * 3
|
||||
|
||||
|
||||
def add_annuaire_link(dff: pl.LazyFrame):
|
||||
dff = dff.with_columns(
|
||||
def add_resource_link(lff: pl.LazyFrame) -> pl.LazyFrame:
|
||||
lff = lff.with_columns(
|
||||
(
|
||||
'<a href="' + pl.col("sourceOpenData") + '">' + pl.col("source") + "</a>"
|
||||
).alias("source")
|
||||
)
|
||||
lff = lff.drop("sourceOpenData")
|
||||
return lff
|
||||
|
||||
|
||||
def add_annuaire_link(lff: pl.LazyFrame):
|
||||
lff = lff.with_columns(
|
||||
pl.when(pl.col("titulaire_typeIdentifiant") == "SIRET")
|
||||
.then(
|
||||
'<a href = "https://annuaire-entreprises.data.gouv.fr/etablissement/'
|
||||
@@ -53,7 +63,7 @@ def add_annuaire_link(dff: pl.LazyFrame):
|
||||
.otherwise(pl.col("titulaire_id"))
|
||||
.alias("titulaire_id")
|
||||
)
|
||||
dff = dff.with_columns(
|
||||
lff = lff.with_columns(
|
||||
(
|
||||
'<a href = "https://annuaire-entreprises.data.gouv.fr/etablissement/'
|
||||
+ pl.col("acheteur_id")
|
||||
@@ -62,7 +72,7 @@ def add_annuaire_link(dff: pl.LazyFrame):
|
||||
+ "</a>"
|
||||
).alias("acheteur_id")
|
||||
)
|
||||
return dff
|
||||
return lff
|
||||
|
||||
|
||||
def booleans_to_strings(lff: pl.LazyFrame) -> pl.LazyFrame:
|
||||
|
||||
Reference in New Issue
Block a user