From 17197c1a5b5142f36a903ab780b1e7d70195f6e6 Mon Sep 17 00:00:00 2001 From: Grace Guo Date: Thu, 8 Mar 2018 12:24:47 -0800 Subject: [PATCH] wrapping all request params into url_params --- superset/jinja_context.py | 3 ++- superset/utils.py | 6 ++++-- tests/utils_tests.py | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/superset/jinja_context.py b/superset/jinja_context.py index 5e83f84189..ce8795acf2 100644 --- a/superset/jinja_context.py +++ b/superset/jinja_context.py @@ -43,7 +43,8 @@ def url_param(param, default=None): # Supporting POST as well as get if request.form.get('form_data'): form_data = json.loads(request.form.get('form_data')) - return form_data.get(param, default) + url_params = form_data['url_params'] or {} + return url_params.get(param, default) return default diff --git a/superset/utils.py b/superset/utils.py index 639045970d..ab3cef8a22 100644 --- a/superset/utils.py +++ b/superset/utils.py @@ -836,10 +836,12 @@ def merge_extra_filters(form_data): def merge_request_params(form_data, params): + url_params = {} for key, value in params.items(): - if key == 'form_data': + if key in ('form_data', 'r'): continue - form_data[key] = value + url_params[key] = value + form_data['url_params'] = url_params def get_update_perms_flag(): diff --git a/tests/utils_tests.py b/tests/utils_tests.py index 000079491a..674c6f4a67 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -227,7 +227,8 @@ class UtilsTestCase(unittest.TestCase): 'dashboard_ids': '(1,2,3,4,5)', } merge_request_params(form_data, url_params) - self.assertIn('dashboard_ids', form_data.keys()) + self.assertIn('url_params', form_data.keys()) + self.assertIn('dashboard_ids', form_data['url_params']) self.assertNotIn('form_data', form_data.keys()) def test_datetime_f(self):