This is an automated email from the ASF dual-hosted git repository.

villebro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 0807ab4  fix(native-filters): merge_extra_form_data extras processing 
(#14244)
0807ab4 is described below

commit 0807ab44a59c35f65293f20aec9699d97dac3cb8
Author: Ville Brofeldt <[email protected]>
AuthorDate: Tue Apr 20 14:24:33 2021 +0300

    fix(native-filters): merge_extra_form_data extras processing (#14244)
    
    * fix: merge_extra_form_data extras processing
    
    * move props that are later moved back in viz.py
---
 superset/constants.py  | 6 +++---
 superset/utils/core.py | 6 +++---
 tests/utils_tests.py   | 4 ++++
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/superset/constants.py b/superset/constants.py
index 0c9016f..f69b7e9 100644
--- a/superset/constants.py
+++ b/superset/constants.py
@@ -133,14 +133,14 @@ EXTRA_FORM_DATA_OVERRIDE_REGULAR_MAPPINGS = {
     "time_column": "time_column",
     "time_grain": "time_grain",
     "time_range": "time_range",
+    "druid_time_origin": "druid_time_origin",
+    "time_grain_sqla": "time_grain_sqla",
+    "time_range_endpoints": "time_range_endpoints",
 }
 
 EXTRA_FORM_DATA_OVERRIDE_EXTRA_KEYS = {
-    "druid_time_origin",
     "relative_start",
     "relative_end",
-    "time_grain_sqla",
-    "time_range_endpoints",
 }
 
 EXTRA_FORM_DATA_OVERRIDE_KEYS = (
diff --git a/superset/utils/core.py b/superset/utils/core.py
index 0c60d05..a9d1bb6 100644
--- a/superset/utils/core.py
+++ b/superset/utils/core.py
@@ -1088,10 +1088,10 @@ def merge_extra_form_data(form_data: Dict[str, Any]) -> 
None:
     extras = form_data.get("extras", {})
     for key in EXTRA_FORM_DATA_OVERRIDE_EXTRA_KEYS:
         value = extra_form_data.get(key)
-        extra = extras.get(key)
-        if value and extra:
+        if value is not None:
             extras[key] = value
-    form_data.update(extras)
+    if extras:
+        form_data["extras"] = extras
 
     adhoc_filters = form_data.get("adhoc_filters", [])
     form_data["adhoc_filters"] = adhoc_filters
diff --git a/tests/utils_tests.py b/tests/utils_tests.py
index 1041091..cf79f16 100644
--- a/tests/utils_tests.py
+++ b/tests/utils_tests.py
@@ -927,6 +927,8 @@ class TestUtils(SupersetTestCase):
                     }
                 ],
                 "time_range": "Last 100 years",
+                "time_grain_sqla": "PT1M",
+                "relative_start": "now",
             },
         }
         merge_extra_form_data(form_data)
@@ -948,6 +950,8 @@ class TestUtils(SupersetTestCase):
             "subject": "foo",
         }
         assert form_data["time_range"] == "Last 100 years"
+        assert form_data["time_grain_sqla"] == "PT1M"
+        assert form_data["extras"]["relative_start"] == "now"
 
     def test_ssl_certificate_parse(self):
         parsed_certificate = parse_ssl_cert(ssl_certificate)

Reply via email to