--- a/annot-server/webapp/admin.py Wed Oct 22 01:52:52 2014 +0200
+++ b/annot-server/webapp/admin.py Wed Oct 22 08:53:33 2014 +0200
@@ -6,6 +6,8 @@
import json
import urllib
+from dateutil.tz import tzutc
+
from flask.ext.admin import Admin
from flask.ext.admin.contrib.sqla import ModelView
from flask.ext.admin.contrib.sqla.form import AdminModelConverter
@@ -76,13 +78,27 @@
if valuelist:
self.data = json.loads(valuelist[0])
else:
- self.data = '{}'
+ self.data = None
+
class JsonAdminConverter(AdminModelConverter):
@converts('JSON')
def conv_JSON(self, field_args, **extra):
return DictToJSONField(**field_args)
+
+class StartTSField(dateutil_fields.DateTimeField):
+ def __init__(self, *args, **kwargs):
+ if 'display_format' not in kwargs:
+ kwargs['display_format']='%Y-%m-%dT%H:%M:%S.%f%z'
+ super(StartTSField, self).__init__(*args, **kwargs)
+
+ def process_formdata(self, valuelist):
+ super(StartTSField, self).process_formdata(valuelist)
+ if self.data and self.data.tzinfo is None:
+ self.data = self.data.replace(tzinfo=tzutc())
+
+
class EventSessionView(ModelView):
column_default_sort = ( models.Event.code, True)
@@ -91,10 +107,7 @@
column_list = ('event', 'project_id', 'order', 'categories_json', 'url')
column_filters = ('event',)
column_formatters = {'url': build_ldt_url, 'categories_json': lambda v, c, m, p: json.dumps(m.categories_json)[:80] if m.categories_json else ''}
- form_args = {
- "start_ts":{ "display_format": '%Y-%m-%dT%H:%M:%S.%f%z'},
- }
- form_overrides = { "start_ts": dateutil_fields.DateTimeField, }
+ form_overrides = { "start_ts": StartTSField, }
form_widget_args = {
'categories_json': {
'rows': 10,