From be58f779267f9f8a96b49052efd353705b3b16ea Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Sun, 26 Feb 2017 09:59:13 -0800 Subject: [PATCH] Fixing multi value parsing on old URL --- superset/legacy.py | 7 +++++-- superset/views.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/superset/legacy.py b/superset/legacy.py index 8bec0846b218..0782690fe8a9 100644 --- a/superset/legacy.py +++ b/superset/legacy.py @@ -63,8 +63,11 @@ def cast_form_data(form_data): elif v and ft == 'TextField' and field_config.get('isFloat'): v = float(v) if v != '' else None elif v and ft == 'SelectField': - if field_config.get('multi') and not isinstance(v, list): - v = [v] + if field_config.get('multi'): + if type(form_data).__name__ == 'ImmutableMultiDict': + v = form_data.getlist(k) + elif not isinstance(v, list): + v = [v] if d.get('slice_id'): d['slice_id'] = int(d['slice_id']) diff --git a/superset/views.py b/superset/views.py index f419abd9730c..8882ba041f71 100755 --- a/superset/views.py +++ b/superset/views.py @@ -1478,7 +1478,7 @@ def get_form_data(self): if request.args.get("viz_type"): # Converting old URLs - d = cast_form_data(request.args.to_dict()) + d = cast_form_data(request.args) extra_filters = request.args.get("extra_filters") filters = d.get('filters', [])