From 1fe15496cefe073959699ea909962fea114b5149 Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Fri, 11 Dec 2015 12:17:23 -0800 Subject: [PATCH] Formatting change_on column in list views --- panoramix/models.py | 3 +++ panoramix/utils.py | 14 ++++++++++++-- panoramix/views.py | 8 ++++---- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/panoramix/models.py b/panoramix/models.py index 6ee1974a4fba7..f1547a34c7e44 100644 --- a/panoramix/models.py +++ b/panoramix/models.py @@ -43,6 +43,9 @@ def created_by_fk(cls): def changed_by_fk(cls): return Column(Integer, ForeignKey('ab_user.id'), default=cls.get_user_id, onupdate=cls.get_user_id, nullable=True) + @property + def changed_on_(cls): + return utils.datetime_f(cls.changed_on) class Slice(Model, AuditMixinNullable): diff --git a/panoramix/utils.py b/panoramix/utils.py index 01d197aab6cf6..98d99d18a38ac 100644 --- a/panoramix/utils.py +++ b/panoramix/utils.py @@ -3,7 +3,7 @@ import hashlib from sqlalchemy.types import TypeDecorator, TEXT import json -from flask import g, request +from flask import g, request, Markup import parsedatetime import functools from panoramix import db @@ -200,5 +200,15 @@ def wrapper(*args, **kwargs): db.session.commit() return f(*args, **kwargs) - return wrapper + + +def datetime_f(dttm): + if dttm: + dttm = dttm.isoformat() + now_iso = datetime.now().isoformat() + if now_iso[:10] == dttm[:10]: + dttm = dttm[11:] + elif now_iso[:4] == dttm[:4]: + dttm = dttm[5:] + return Markup("{}".format(dttm)) diff --git a/panoramix/views.py b/panoramix/views.py index 616d13e7c32ca..4f679f17e6632 100644 --- a/panoramix/views.py +++ b/panoramix/views.py @@ -105,7 +105,7 @@ class MetricInlineView(CompactCRUDMixin, PanoramixModelView): class DatabaseView(PanoramixModelView, DeleteMixin): datamodel = SQLAInterface(models.Database) - list_columns = ['database_name', 'created_by', 'changed_on'] + list_columns = ['database_name', 'created_by', 'changed_on_'] add_columns = ['database_name', 'sqlalchemy_uri'] search_exclude_columns = ('password',) edit_columns = add_columns @@ -137,7 +137,7 @@ def pre_update(self, db): class TableView(PanoramixModelView, DeleteMixin): datamodel = SQLAInterface(models.SqlaTable) - list_columns = ['table_link', 'database', 'changed_by', 'changed_on'] + list_columns = ['table_link', 'database', 'changed_by', 'changed_on_'] add_columns = ['table_name', 'database', 'default_endpoint', 'offset'] edit_columns = [ 'table_name', 'database', 'main_dttm_col', 'default_endpoint', @@ -194,7 +194,7 @@ class SliceModelView(PanoramixModelView, DeleteMixin): can_add = False list_columns = [ 'slice_link', 'viz_type', 'datasource_type', - 'datasource', 'created_by', 'changed_on'] + 'datasource', 'created_by', 'changed_on_'] edit_columns = [ 'slice_name', 'viz_type', 'druid_datasource', 'table', 'dashboards', 'params'] @@ -211,7 +211,7 @@ class SliceModelView(PanoramixModelView, DeleteMixin): class DashboardModelView(PanoramixModelView, DeleteMixin): datamodel = SQLAInterface(models.Dashboard) - list_columns = ['dashboard_link', 'created_by', 'changed_by', 'changed_on'] + list_columns = ['dashboard_link', 'created_by', 'changed_by', 'changed_on_'] edit_columns = [ 'dashboard_title', 'slug', 'slices', 'position_json', 'css'] add_columns = edit_columns