From aec3c0b3580da23a767c0a83608170f8a89ce704 Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Sun, 3 Apr 2016 07:37:18 -0700 Subject: [PATCH] Fixing bug when datasource has been deleted --- caravel/assets/javascripts/dashboard.js | 17 +++++++++++------ caravel/models.py | 14 +++++++++----- caravel/templates/caravel/dashboard.html | 10 +++++----- caravel/views.py | 1 - caravel/viz.py | 2 ++ 5 files changed, 27 insertions(+), 17 deletions(-) diff --git a/caravel/assets/javascripts/dashboard.js b/caravel/assets/javascripts/dashboard.js index e3ef7d5457f84..79440d6c40167 100644 --- a/caravel/assets/javascripts/dashboard.js +++ b/caravel/assets/javascripts/dashboard.js @@ -21,12 +21,17 @@ var Dashboard = function (dashboardData) { var sliceObjects = [], dash = this; dashboard.slices.forEach(function (data) { - var slice = px.Slice(data, dash); - $("#slice_" + data.slice_id).find('a.refresh').click(function () { - slice.render(true); - }); - sliceObjects.push(slice); - slice.render(); + if (data.error) { + var html = '
' + data.error + '
'; + $("#slice_" + data.slice_id).find('.token').html(html); + } else { + var slice = px.Slice(data, dash); + $("#slice_" + data.slice_id).find('a.refresh').click(function () { + slice.render(true); + }); + sliceObjects.push(slice); + slice.render(); + } }); this.slices = sliceObjects; }, diff --git a/caravel/models.py b/caravel/models.py index e8973c4891606..a7ab6230bfe08 100644 --- a/caravel/models.py +++ b/caravel/models.py @@ -151,10 +151,8 @@ def datasource_edit_url(self): @utils.memoized def viz(self): d = json.loads(self.params) - viz = viz_types[self.viz_type]( - self.datasource, - form_data=d) - return viz + viz_class = viz_types[self.viz_type] + return viz_class(self.datasource, form_data=d) @property def description_markeddown(self): @@ -166,7 +164,13 @@ def datasource_id(self): @property def data(self): - d = self.viz.data + d = {} + self.token = '' + try: + d = self.viz.data + self.token = d.get('token') + except Exception as e: + d['error'] = str(e) d['slice_id'] = self.id return d diff --git a/caravel/templates/caravel/dashboard.html b/caravel/templates/caravel/dashboard.html index 9859fc77eb297..52f3645f4ca8c 100644 --- a/caravel/templates/caravel/dashboard.html +++ b/caravel/templates/caravel/dashboard.html @@ -72,17 +72,17 @@