diff --git a/panoramix/templates/panoramix/datasource.html b/panoramix/templates/panoramix/datasource.html index 641d6ee40..21f206534 100644 --- a/panoramix/templates/panoramix/datasource.html +++ b/panoramix/templates/panoramix/datasource.html @@ -94,8 +94,14 @@
- - + +
@@ -188,7 +194,7 @@ }); } $("#plus").click(add_filter); - $("#bookmark").click(function () { + $("#save").click(function () { var slice_name = prompt("Name your slice!"); $("#slice_name").val(slice_name); $.get( "/panoramix/save/", $("#query").serialize() ); diff --git a/panoramix/views.py b/panoramix/views.py index a3249dc36..8ff805fd5 100644 --- a/panoramix/views.py +++ b/panoramix/views.py @@ -285,14 +285,24 @@ class Panoramix(BaseView): d = request.args.to_dict(flat=False) as_list = ('metrics', 'groupby') for m in as_list: - if d[m] and not isinstance(d[m]): + v = d.get(m) + if v and not isinstance(d[m], list): d[m] = [d[m]] + + table_id = druid_datasource_id = None + datasource_type = request.args.get('datasource_type') + if datasource_type == 'druid': + druid_datasource_id = request.args.get('datasource_id') + else: + table_id = request.args.get('datasource_id') + obj = models.Slice( params=json.dumps(d, indent=4), viz_type=request.args.get('viz_type'), datasource_name=request.args.get('datasource_name'), - datasource_id=request.args.get('datasource_id'), - datasource_type=request.args.get('datasource_type'), + druid_datasource_id=druid_datasource_id, + table_id=table_id, + datasource_type=datasource_type, slice_name=request.args.get('slice_name', 'junk'), ) session.add(obj)