L'URL de partage contient les colonnes à afficher, non les colonnes à masquer #58

This commit is contained in:
Colin Maudry
2025-12-24 10:44:06 +01:00
parent 84cf48182d
commit b47463b638
2 changed files with 19 additions and 2 deletions
+5 -2
View File
@@ -11,6 +11,7 @@ from src.utils import (
df,
filter_table_data,
get_default_hidden_columns,
invert_columns,
meta_content,
sort_table_data,
)
@@ -213,7 +214,8 @@ def restore_view_from_url(search):
if "colonnes" in params:
try:
hidden_columns = json.loads(params["colonnes"][0])
columns = json.loads(params["colonnes"][0])
hidden_columns = invert_columns(columns)
except json.JSONDecodeError:
pass
@@ -243,7 +245,8 @@ def sync_url_and_reset_button(filter_query, sort_by, hidden_columns, href):
params["tris"] = json.dumps(sort_by)
if hidden_columns:
params["colonnes"] = json.dumps(hidden_columns)
columns = invert_columns(hidden_columns)
params["colonnes"] = json.dumps(columns)
query_string = urllib.parse.urlencode(params)
full_url = f"{base_url}?{query_string}" if query_string else base_url
+14
View File
@@ -651,6 +651,20 @@ def get_button_properties(height):
return download_disabled, download_text, download_title
def invert_columns(columns):
"""
Renvoie les colonnes du schéma non spécifiées en paramètre. Utile pour passer d'une colonnes masquées à une liste de colonnes affichées, et vice versa.
:param columns:
:return:
"""
inverted_columns = []
for column in schema.names():
if column not in columns:
inverted_columns.append(column)
return inverted_columns
df: pl.DataFrame = get_decp_data()
schema = df.collect_schema()