diff --git a/src/figures.py b/src/figures.py index 974e902..bdfb690 100644 --- a/src/figures.py +++ b/src/figures.py @@ -1069,10 +1069,45 @@ def get_top_org_table(data, org_type: str, extra_columns: list, filters: bool = ) +# Libellés du menu de filtre AG Grid, traduits en français (option native +# AG Grid localeText, exposée via dashGridOptions — n'affecte pas l'apparence +# de base conservée au Lot 1, seulement le texte). +AG_GRID_LOCALE_FR = { + # Filtres texte / nombre / date + "contains": "Contient", + "notContains": "Ne contient pas", + "equals": "Égal à", + "notEqual": "Différent de", + "startsWith": "Commence par", + "endsWith": "Se termine par", + "blank": "Vide", + "notBlank": "Non vide", + "empty": "Choisir une option", + "lessThan": "Inférieur à", + "lessThanOrEqual": "Inférieur ou égal à", + "greaterThan": "Supérieur à", + "greaterThanOrEqual": "Supérieur ou égal à", + "inRange": "Entre", + "inRangeStart": "de", + "inRangeEnd": "à", + # Chrome du menu de filtre + "filterOoo": "Filtrer...", + "applyFilter": "Appliquer", + "resetFilter": "Réinitialiser", + "clearFilter": "Effacer", + "cancelFilter": "Annuler", + "andCondition": "ET", + "orCondition": "OU", + "noRowsToShow": "Aucune ligne à afficher", + "loadingOoo": "Chargement...", +} + + def ag_grid(grid_id: str, column_defs: list[dict]) -> "dag.AgGrid": """Grille AG Grid server-side (infinite) pour la page Tableau. - Apparence de base d'AG Grid (aucun thème custom au Lot 1). + Apparence de base d'AG Grid (aucun thème custom au Lot 1) ; libellés + de filtre traduits en français via localeText. """ return dag.AgGrid( id=grid_id, @@ -1086,6 +1121,7 @@ def ag_grid(grid_id: str, column_defs: list[dict]) -> "dag.AgGrid": "rowBuffer": 0, "infiniteInitialRowCount": 100, "suppressCellFocus": True, + "localeText": AG_GRID_LOCALE_FR, }, columnSize="responsiveSizeToFit", style={"height": "70vh", "width": "100%"}, diff --git a/tests/test_figures.py b/tests/test_figures.py index 2b62ea1..23b8383 100644 --- a/tests/test_figures.py +++ b/tests/test_figures.py @@ -349,3 +349,24 @@ def test_bounds_to_center_zoom_center_is_bbox_midpoint(): center, _ = bounds_to_center_zoom(40.0, 0.0, 50.0, 4.0) assert center == [45.0, 2.0] + + +def test_ag_grid_locale_text_translates_common_filter_labels(): + from src.figures import ag_grid + + grid = ag_grid("tableau_grid", []) + locale_text = grid.dashGridOptions["localeText"] + + assert locale_text["equals"] == "Égal à" + assert locale_text["contains"] == "Contient" + assert locale_text["blank"] == "Vide" + assert locale_text["notBlank"] == "Non vide" + + +def test_ag_grid_keeps_base_appearance(): + """Pas de thème/className custom au Lot 1 (spec de design).""" + from src.figures import ag_grid + + grid = ag_grid("tableau_grid", []) + + assert getattr(grid, "className", None) in (None, "")