Add "local" datetime renderer for new grids, forms

This commit is contained in:
Lance Edgar 2017-10-10 13:58:52 -07:00
parent 791f3beffc
commit 6281593084
2 changed files with 20 additions and 0 deletions

View file

@ -34,6 +34,7 @@ import sqlalchemy as sa
from sqlalchemy import orm
from sqlalchemy.ext.associationproxy import AssociationProxy, ASSOCIATION_PROXY
from rattail.time import localtime
from rattail.util import prettify, pretty_boolean, pretty_hours
import colander
@ -287,6 +288,8 @@ class Form(object):
def set_type(self, key, type_):
if type_ == 'datetime':
self.set_renderer(key, self.render_datetime)
elif type_ == 'datetime_local':
self.set_renderer(key, self.render_datetime_local)
elif type_ == 'duration':
self.set_renderer(key, self.render_duration)
elif type_ == 'boolean':
@ -401,6 +404,13 @@ class Form(object):
return ""
return raw_datetime(self.request.rattail_config, value)
def render_datetime_local(self, record, field_name):
value = self.obtain_value(record, field_name)
if value is None:
return ""
value = localtime(self.request.rattail_config, value)
return raw_datetime(self.request.rattail_config, value)
def render_duration(self, record, field_name):
value = self.obtain_value(record, field_name)
if value is None: