CRUD views improvements

This commit is contained in:
Maxime Beauchemin 2016-01-24 10:09:26 -08:00
parent 0ca59bcc21
commit e6920f8066
2 changed files with 37 additions and 3 deletions

View File

@ -46,6 +46,13 @@ class AuditMixinNullable(AuditMixin):
@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 @@ class Slice(Model, AuditMixinNullable):
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 @@ class SqlaTable(Model, Queryable, AuditMixinNullable):
def description_markeddown(self):
return utils.markdown(self.description)
@property
def url(self):
return '/tableview/edit/{}'.format(self.id)
@property
def link(self):
return '<a href="{self.url}">{self.table_name}</a>'.format(**locals())
@property
def perm(self):
return (
@ -743,9 +765,21 @@ class Datasource(Model, AuditMixinNullable, Queryable):
"[{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 (
'<a href="{self.url}">'
'{self.datasource_name}</a>').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

View File

@ -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 @@ appbuilder.add_view(
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']