titulaire : clientside callback ajouté

This commit is contained in:
Colin Maudry
2026-02-04 13:05:59 +01:00
parent f480439985
commit 39af4bafbe
+27 -1
View File
@@ -2,7 +2,17 @@ import datetime
import dash_bootstrap_components as dbc import dash_bootstrap_components as dbc
import polars as pl import polars as pl
from dash import Input, Output, State, callback, dcc, html, register_page from dash import (
ClientsideFunction,
Input,
Output,
State,
callback,
clientside_callback,
dcc,
html,
register_page,
)
from src.callbacks import get_top_org_table from src.callbacks import get_top_org_table
from src.figures import DataTable, make_column_picker, point_on_map from src.figures import DataTable, make_column_picker, point_on_map
@@ -60,6 +70,7 @@ layout = [
dcc.Store(id="titulaire-hidden-columns", storage_type="local"), dcc.Store(id="titulaire-hidden-columns", storage_type="local"),
dcc.Store(id="titulaire-filters", storage_type="local"), dcc.Store(id="titulaire-filters", storage_type="local"),
dcc.Store(id="titulaire-sort", storage_type="local"), dcc.Store(id="titulaire-sort", storage_type="local"),
dcc.Store(id="filter-cleanup-trigger-titulaire"),
dcc.Location(id="titulaire_url", refresh="callback-nav"), dcc.Location(id="titulaire_url", refresh="callback-nav"),
html.Div( html.Div(
children=[ children=[
@@ -302,12 +313,14 @@ def get_titulaire_marches_data(url, titulaire_year: str) -> tuple:
Output("btn-download-filtered-data-titulaire", "disabled"), Output("btn-download-filtered-data-titulaire", "disabled"),
Output("btn-download-filtered-data-titulaire", "children"), Output("btn-download-filtered-data-titulaire", "children"),
Output("btn-download-filtered-data-titulaire", "title"), Output("btn-download-filtered-data-titulaire", "title"),
Output("filter-cleanup-trigger-titulaire", "data", allow_duplicate=True),
Input("titulaire_data", "data"), Input("titulaire_data", "data"),
Input("titulaire_datatable", "page_current"), Input("titulaire_datatable", "page_current"),
Input("titulaire_datatable", "page_size"), Input("titulaire_datatable", "page_size"),
Input("titulaire-filters", "data"), Input("titulaire-filters", "data"),
Input("titulaire-sort", "data"), Input("titulaire-sort", "data"),
State("titulaire_datatable", "data_timestamp"), State("titulaire_datatable", "data_timestamp"),
config_prevent_initial_callbacks=True,
) )
def get_last_marches_data( def get_last_marches_data(
data, page_current, page_size, filter_query, sort_by, data_timestamp data, page_current, page_size, filter_query, sort_by, data_timestamp
@@ -392,6 +405,19 @@ def download_filtered_titulaire_data(
) )
# Pour nettoyer les icontains et i< des filtres
# voir aussi src/assets/dash_clientside.js
clientside_callback(
ClientsideFunction(
namespace="clientside",
function_name="clean_filters",
),
Output("filter-cleanup-trigger-titulaire", "data", allow_duplicate=True),
Input("filter-cleanup-trigger-titulaire", "data"),
prevent_initial_call=True,
)
@callback( @callback(
Output("titulaire-hidden-columns", "data", allow_duplicate=True), Output("titulaire-hidden-columns", "data", allow_duplicate=True),
Input("titulaire_column_list", "selected_rows"), Input("titulaire_column_list", "selected_rows"),