diff --git a/CHANGELOG.md b/CHANGELOG.md index c9fd3ce9..c2d1540d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ Links "DE#nnn" prior to version 2.0 point to the Dash Enterprise closed-source D - [#448](https://github.com/plotly/dash-ag-grid/pull/448) Added support for AG-Charts (split out in v33 of AG Grid). Integrated Charts require enableEnterpriseModules=True, dashChartMode="community" or "enterprise", and dashGridOptions={"enableCharts": True}. - [#455](https://github.com/plotly/dash-ag-grid/pull/455) Added support for dynamic `detailCellRendererParams` in Master/Detail, including dynamic detail-grid column definitions. - [#468](https://github.com/plotly/dash-ag-grid/issues/468) Support passing a function to the grid option `processUnpinnedColumns`. +- [#472](https://github.com/plotly/dash-ag-grid/pull/472) Added support for callback function for the groupAggFiltering options ### Changed - [#452](https://github.com/plotly/dash-ag-grid/pull/452) diff --git a/src/lib/utils/propCategories.js b/src/lib/utils/propCategories.js index c1ec7e3d..2c8023e1 100644 --- a/src/lib/utils/propCategories.js +++ b/src/lib/utils/propCategories.js @@ -73,6 +73,7 @@ export const GRID_MAYBE_FUNCTIONS = { isExternalFilterPresent: 1, doesExternalFilterPass: 1, quickFilterParser: 1, + groupAggFiltering: 1, // Integrated Charts getChartToolbarItems: 1, diff --git a/tests/test_custom_filter.py b/tests/test_custom_filter.py index f86483c9..ed9af8fc 100644 --- a/tests/test_custom_filter.py +++ b/tests/test_custom_filter.py @@ -386,4 +386,49 @@ def test_fi006_custom_filter(dash_duo): # Apply apply_buttons = dash_duo.find_elements('button[data-ref="applyFilterButton"]') apply_buttons[1].click() - grid.wait_for_cell_text(0, 2, "24/08/2008") \ No newline at end of file + grid.wait_for_cell_text(0, 2, "24/08/2008") + + +def test_fi007_custom_filter(dash_duo): + + app = Dash(__name__) + + column_defs = [ + {"field": "country", "rowGroup": True, "hide": True}, + {"field": "year"}, + {"field": "total", "aggFunc": "sum", "filter": "agNumberColumnFilter"}, + ] + + default_col_def = { + "flex": 1, + "floatingFilter": True, + } + + auto_group_column_def = { + "field": "athlete", + } + + app.layout = html.Div( + children=[ + dag.AgGrid( + id="grid", + rowData=df.to_dict("records"), + columnDefs=column_defs, + defaultColDef=default_col_def, + dashGridOptions={ + "groupAggFiltering": {"function": "!!params.node.group"}, + "groupDefaultExpanded": -1, + "autoGroupColumnDef": auto_group_column_def, + }, + enableEnterpriseModules=True, + ) + ], + ) + + dash_duo.start_server(app) + grid = utils.Grid(dash_duo, "grid") + grid.wait_for_cell_text(1, 0, "Michael Phelps") + + grid.set_filter(3, 8) + grid.wait_for_cell_text(0, 3, "8") + \ No newline at end of file