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)