From e8a0a5ee5c470b943b29c3a6f99d6cca41191eef Mon Sep 17 00:00:00 2001 From: John Bodley <4567245+john-bodley@users.noreply.github.com> Date: Wed, 16 Nov 2022 08:07:42 -0800 Subject: [PATCH] fix: Missing applied filters indicator (#22137) --- superset/utils/core.py | 5 ++--- tests/integration_tests/utils_tests.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/superset/utils/core.py b/superset/utils/core.py index 3fa6477932..0ab3a685a3 100644 --- a/superset/utils/core.py +++ b/superset/utils/core.py @@ -1182,8 +1182,7 @@ def merge_extra_filters(form_data: Dict[str, Any]) -> None: # that are external to the slice definition. We use those for dynamic # interactive filters like the ones emitted by the "Filter Box" visualization. # Note extra_filters only support simple filters. - applied_time_extras: Dict[str, str] = {} - form_data["applied_time_extras"] = applied_time_extras + form_data.setdefault("applied_time_extras", {}) adhoc_filters = form_data.get("adhoc_filters", []) form_data["adhoc_filters"] = adhoc_filters merge_extra_form_data(form_data) @@ -1226,7 +1225,7 @@ def merge_extra_filters(form_data: Dict[str, Any]) -> None: time_extra_value = filtr.get("val") if time_extra_value and time_extra_value != NO_TIME_RANGE: form_data[time_extra] = time_extra_value - applied_time_extras[filter_column] = time_extra_value + form_data["applied_time_extras"][filter_column] = time_extra_value elif filtr["val"]: # Merge column filters filter_key = get_filter_key(filtr) diff --git a/tests/integration_tests/utils_tests.py b/tests/integration_tests/utils_tests.py index 1d30ec639b..70487da280 100644 --- a/tests/integration_tests/utils_tests.py +++ b/tests/integration_tests/utils_tests.py @@ -539,6 +539,18 @@ class TestUtils(SupersetTestCase): merge_extra_filters(form_data) self.assertEqual(form_data, expected) + def test_merge_extra_filters_when_applied_time_extras_predefined(self): + form_data = {"applied_time_extras": {"__time_range": "Last week"}} + merge_extra_filters(form_data) + + self.assertEqual( + form_data, + { + "applied_time_extras": {"__time_range": "Last week"}, + "adhoc_filters": [], + }, + ) + def test_merge_request_params_when_url_params_undefined(self): form_data = {"since": "2000", "until": "now"} url_params = {"form_data": form_data, "dashboard_ids": "(1,2,3,4,5)"}