From 436906911b8e904bee123620b9073fc2e22c9751 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Fri, 10 Jul 2026 08:17:44 +0200 Subject: [PATCH] =?UTF-8?q?feat(tableau):=20s=C3=A9lecteur=20de=20colonnes?= =?UTF-8?q?=20pilot=C3=A9=20par=20columnDefs=20(#41)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit apply_hidden_columns régénère columnDefs (via grid_column_defs) sur tableau_grid quand le Store tableau-hidden-columns change, remplaçant store_hidden_columns qui ciblait l'ancienne prop hidden_columns de la DataTable (supprimée en tâche 7). update_checkboxes_from_hidden_columns lit désormais directement le Store plutôt que la prop de la DataTable disparue, pour que la synchronisation cases à cocher <-> colonnes masquées continue de fonctionner. Co-Authored-By: Claude Sonnet 5 --- src/pages/tableau.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/pages/tableau.py b/src/pages/tableau.py index c50dc6c..09a6aad 100644 --- a/src/pages/tableau.py +++ b/src/pages/tableau.py @@ -636,21 +636,18 @@ def update_hidden_columns_from_checkboxes(selected_columns): @callback( - Output("tableau_datatable", "hidden_columns"), - Input( - "tableau-hidden-columns", - "data", - ), + Output("tableau_grid", "columnDefs"), + Input("tableau-hidden-columns", "data"), ) -def store_hidden_columns(hidden_columns): +def apply_hidden_columns(hidden_columns): if hidden_columns is None: hidden_columns = get_default_hidden_columns("tableau") - return hidden_columns + return grid_column_defs(hidden_columns) @callback( Output("tableau_column_list", "selected_rows"), - Input("tableau_datatable", "hidden_columns"), + Input("tableau-hidden-columns", "data"), State("tableau_column_list", "selected_rows"), # pour éviter la boucle infinie ) def update_checkboxes_from_hidden_columns(hidden_cols, current_checkboxes):