From 051e908bd18f983d3f3a70951dc5d4f17c7b3b8c Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Wed, 18 Mar 2026 20:33:15 +0100 Subject: [PATCH] feat: save observatoire filters to localStorage on change #65 --- src/pages/observatoire.py | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/pages/observatoire.py b/src/pages/observatoire.py index ec48c38..53dfddf 100644 --- a/src/pages/observatoire.py +++ b/src/pages/observatoire.py @@ -326,6 +326,46 @@ def restore_filters_from_url(search): return acheteur_id, titulaire_id +@callback( + Output("observatoire-filters", "data"), + Input("dashboard_year", "value"), + Input("dashboard_acheteur_id", "value"), + Input("dashboard_acheteur_categorie", "value"), + Input("dashboard_acheteur_departement_code", "value"), + Input("dashboard_titulaire_id", "value"), + Input("dashboard_titulaire_categorie", "value"), + Input("dashboard_titulaire_departement_code", "value"), + Input("dashboard_marche_type", "value"), + Input("dashboard_marche_considerationsSociales", "value"), + Input("dashboard_marche_considerationsEnvironnementales", "value"), + prevent_initial_call=True, +) +def save_filters_to_storage( + year, + acheteur_id, + acheteur_categorie, + acheteur_departement_code, + titulaire_id, + titulaire_categorie, + titulaire_departement_code, + marche_type, + considerations_sociales, + considerations_environnementales, +): + return { + "year": year, + "acheteur_id": acheteur_id, + "acheteur_categorie": acheteur_categorie, + "acheteur_departement_code": acheteur_departement_code, + "titulaire_id": titulaire_id, + "titulaire_categorie": titulaire_categorie, + "titulaire_departement_code": titulaire_departement_code, + "marche_type": marche_type, + "considerations_sociales": considerations_sociales, + "considerations_environnementales": considerations_environnementales, + } + + @callback( Output("observatoire-share-url", "value"), Output("observatoire-copy-container", "children"),