feat(tableau): masquage du bloc de partage piloté par événements AG Grid (#112)

Remplace le verrou de dérive à compteur (suppress-next) par une détection
événementielle : eventListeners AG Grid (filterChanged/sortChanged) →
dashAgGridFunctions.hideShareOnUserAction, qui efface active-view sur action
utilisateur (source != 'api') et ignore l'écho de l'application programmatique.

Le compteur suppress-next souffrait d'une course d'ordonnancement Dash (l'écho
lisait la valeur pré-batch) et le diff de columnState était impraticable (état
réémis bruité). La visibilité du bloc bascule via la classe (d-flex/d-none) et
non le style inline, car .d-flex est display:flex !important.

Task 7 : test E2E de bout en bout (application + masquage sur action).
This commit is contained in:
Colin Maudry
2026-07-13 18:41:36 +02:00
parent 0e0fb32222
commit 3034e911e7
5 changed files with 155 additions and 71 deletions
+2
View File
@@ -1184,6 +1184,7 @@ def ag_grid(
column_defs: list[dict],
persisted_props=("filterModel", "columnState"),
persistence: bool = True,
event_listeners: "dict | None" = None,
) -> "dag.AgGrid":
"""Grille AG Grid server-side (infinite) pour la page Tableau.
@@ -1195,6 +1196,7 @@ def ag_grid(
id=grid_id,
columnDefs=column_defs,
defaultColDef={"resizable": True, "minWidth": 120, "floatingFilter": True},
eventListeners=event_listeners,
rowModelType="infinite",
dangerously_allow_code=True, # rend le HTML <a> des cellules liens
dashGridOptions={