id table => tableau_datatable

This commit is contained in:
Colin Maudry
2026-02-02 19:51:09 +01:00
parent f16cca036d
commit 55e2992559
2 changed files with 26 additions and 27 deletions
+23 -23
View File
@@ -54,7 +54,7 @@ register_page(
datatable = html.Div( datatable = html.Div(
className="marches_table", className="marches_table",
children=DataTable( children=DataTable(
dtid="table", dtid="tableau_datatable",
page_size=20, page_size=20,
page_action="custom", page_action="custom",
filter_action="custom", filter_action="custom",
@@ -276,19 +276,19 @@ layout = [
@callback( @callback(
Output("table", "data"), Output("tableau_datatable", "data"),
Output("table", "columns"), Output("tableau_datatable", "columns"),
Output("table", "tooltip_header"), Output("tableau_datatable", "tooltip_header"),
Output("table", "data_timestamp"), Output("tableau_datatable", "data_timestamp"),
Output("nb_rows", "children"), Output("nb_rows", "children"),
Output("btn-download-data", "disabled"), Output("btn-download-data", "disabled"),
Output("btn-download-data", "children"), Output("btn-download-data", "children"),
Output("btn-download-data", "title"), Output("btn-download-data", "title"),
Input("table", "page_current"), Input("tableau_datatable", "page_current"),
Input("table", "page_size"), Input("tableau_datatable", "page_size"),
Input("tableau-filters", "data"), Input("tableau-filters", "data"),
Input("tableau-sort", "data"), Input("tableau-sort", "data"),
State("table", "data_timestamp"), State("tableau_datatable", "data_timestamp"),
) )
def update_table(page_current, page_size, filter_query, sort_by, data_timestamp): def update_table(page_current, page_size, filter_query, sort_by, data_timestamp):
# if ctx.triggered_id != "url": # if ctx.triggered_id != "url":
@@ -303,9 +303,9 @@ def update_table(page_current, page_size, filter_query, sort_by, data_timestamp)
@callback( @callback(
Output("download-data", "data"), Output("download-data", "data"),
Input("btn-download-data", "n_clicks"), Input("btn-download-data", "n_clicks"),
State("table", "filter_query"), State("tableau_datatable", "filter_query"),
State("table", "sort_by"), State("tableau_datatable", "sort_by"),
State("table", "hidden_columns"), State("tableau_datatable", "hidden_columns"),
prevent_initial_call=True, prevent_initial_call=True,
) )
def download_data(n_clicks, filter_query, sort_by, hidden_columns: list = None): def download_data(n_clicks, filter_query, sort_by, hidden_columns: list = None):
@@ -329,8 +329,8 @@ def download_data(n_clicks, filter_query, sort_by, hidden_columns: list = None):
@callback( @callback(
Output("table", "filter_query"), Output("tableau_datatable", "filter_query"),
Output("table", "sort_by"), Output("tableau_datatable", "sort_by"),
Output("tableau-hidden-columns", "data"), Output("tableau-hidden-columns", "data"),
Output("tableau_url", "search"), Output("tableau_url", "search"),
Output("filter-cleanup-trigger", "data"), Output("filter-cleanup-trigger", "data"),
@@ -389,9 +389,9 @@ clientside_callback(
@callback( @callback(
Output("share-url", "value"), Output("share-url", "value"),
Output("copy-container", "children"), Output("copy-container", "children"),
Input("table", "filter_query"), Input("tableau_datatable", "filter_query"),
Input("table", "sort_by"), Input("tableau_datatable", "sort_by"),
Input("table", "hidden_columns"), Input("tableau_datatable", "hidden_columns"),
State("tableau_url", "href"), State("tableau_url", "href"),
prevent_initial_call=True, prevent_initial_call=True,
) )
@@ -473,7 +473,7 @@ def update_hidden_columns_from_checkboxes(selected_columns):
@callback( @callback(
Output("table", "hidden_columns"), Output("tableau_datatable", "hidden_columns"),
Input( Input(
"tableau-hidden-columns", "tableau-hidden-columns",
"data", "data",
@@ -485,11 +485,11 @@ def store_hidden_columns(hidden_columns):
@callback( @callback(
Output("tableau_column_list", "selected_rows"), Output("tableau_column_list", "selected_rows"),
Input("table", "hidden_columns"), Input("tableau_datatable", "hidden_columns"),
State("tableau_column_list", "selected_rows"), # pour éviter la boucle infinie State("tableau_column_list", "selected_rows"), # pour éviter la boucle infinie
) )
def update_checkboxes_from_hidden_columns(hidden_cols, current_checkboxes): def update_checkboxes_from_hidden_columns(hidden_cols, current_checkboxes):
hidden_cols = hidden_cols or get_default_hidden_columns(None) hidden_cols = hidden_cols or get_default_hidden_columns("tableau")
# Show all columns that are NOT hidden # Show all columns that are NOT hidden
visible_cols = [columns.index(col) for col in columns if col not in hidden_cols] visible_cols = [columns.index(col) for col in columns if col not in hidden_cols]
@@ -508,19 +508,19 @@ def toggle_tableau_columns(click_open, click_close, is_open):
return is_open return is_open
@callback(Output("tableau-filters", "data"), Input("table", "filter_query")) @callback(Output("tableau-filters", "data"), Input("tableau_datatable", "filter_query"))
def sync_filters_to_local_storage(filter_query): def sync_filters_to_local_storage(filter_query):
return filter_query return filter_query
@callback(Output("tableau-sort", "data"), Input("table", "sort_by")) @callback(Output("tableau-sort", "data"), Input("tableau_datatable", "sort_by"))
def sync_sort_to_local_storage(sort_by): def sync_sort_to_local_storage(sort_by):
return sort_by return sort_by
@callback( @callback(
Output("table", "filter_query", allow_duplicate=True), Output("tableau_datatable", "filter_query", allow_duplicate=True),
Output("table", "sort_by", allow_duplicate=True), Output("tableau_datatable", "sort_by", allow_duplicate=True),
Input("btn-tableau-reset", "n_clicks"), Input("btn-tableau-reset", "n_clicks"),
prevent_initial_call=True, prevent_initial_call=True,
) )
+3 -4
View File
@@ -428,12 +428,11 @@ def get_default_hidden_columns(page):
"codeCPV", "codeCPV",
"dureeRestanteMois", "dureeRestanteMois",
] ]
elif page == "titulaire":
displayed_columns = os.getenv("DISPLAYED_COLUMNS")
else: else:
displayed_columns = os.getenv("DISPLAYED_COLUMNS") displayed_columns = os.getenv("DISPLAYED_COLUMNS")
if displayed_columns is None: logger.warning(f"Invalid page: {page}")
raise ValueError("DISPLAYED_COLUMNS n'est pas configuré")
else:
displayed_columns = displayed_columns.replace(" ", "").split(",")
hidden_columns = [] hidden_columns = []