From e6920f8066bdbd7694eccdb3b8a88d5fc694c4da Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Sun, 24 Jan 2016 10:09:26 -0800 Subject: [PATCH] CRUD views improvements --- panoramix/models.py | 36 +++++++++++++++++++++++++++++++++++- panoramix/views.py | 4 ++-- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/panoramix/models.py b/panoramix/models.py index 3a036b8cb9f75..6aa5121366253 100644 --- a/panoramix/models.py +++ b/panoramix/models.py @@ -46,6 +46,13 @@ def changed_by_fk(cls): @property def changed_on_(cls): return utils.datetime_f(cls.changed_on) + @property + def created_by_(self): + return self.created_by or '' + @property + def changed_by_(self): + return self.changed_by or '' + class Url(Model, AuditMixinNullable): @@ -80,6 +87,13 @@ def __repr__(self): def datasource(self): return self.table or self.druid_datasource + @property + def datasource_link(self): + if self.table: + return self.table.link + elif self.druid_datasource: + return self.druid_datasource.link + @property @utils.memoized def viz(self): @@ -274,6 +288,14 @@ def __repr__(self): def description_markeddown(self): return utils.markdown(self.description) + @property + def url(self): + return '/tableview/edit/{}'.format(self.id) + + @property + def link(self): + return '{self.table_name}'.format(**locals()) + @property def perm(self): return ( @@ -743,9 +765,21 @@ def perm(self): "[{self.cluster_name}].[{self.datasource_name}]" "(id:{self.id})").format(self=self) + @property + def url(self): + return '/datasourcemodelview/edit/{}'.format(self.id) + + @property + def link(self): + return ( + '' + '{self.datasource_name}').format(**locals()) + @property def full_name(self): - return "[{self.cluster_name}].[{self.datasource_name}]".format(self=self) + return ( + "[{self.cluster_name}]." + "[{self.datasource_name}]").format(self=self) def __repr__(self): return self.datasource_name diff --git a/panoramix/views.py b/panoramix/views.py index 4e5be18766288..e4c9c83bc55cf 100644 --- a/panoramix/views.py +++ b/panoramix/views.py @@ -203,7 +203,7 @@ class SliceModelView(PanoramixModelView, DeleteMixin): can_add = False list_columns = [ 'slice_link', 'viz_type', - 'datasource', 'created_by', 'changed_on_'] + 'datasource_link', 'created_by_', 'changed_on_'] edit_columns = [ 'slice_name', 'description', 'viz_type', 'druid_datasource', 'table', 'dashboards', 'params'] @@ -223,7 +223,7 @@ class SliceModelView(PanoramixModelView, DeleteMixin): class DashboardModelView(PanoramixModelView, DeleteMixin): datamodel = SQLAInterface(models.Dashboard) - list_columns = ['dashboard_link', 'changed_by', 'changed_on_'] + list_columns = ['dashboard_link', 'created_by_', 'changed_on_'] edit_columns = [ 'dashboard_title', 'slug', 'slices', 'position_json', 'css', 'json_metadata']