json: export DateField as YYYY-MM-DD (#6927)

This commit is contained in:
Thomas NOËL 2015-04-16 12:32:46 +02:00
parent 6405605f28
commit 3c6b72006f
2 changed files with 13 additions and 3 deletions

View File

@ -5,6 +5,7 @@ import base64
import hashlib
import urllib
import datetime
import time
from quixote import cleanup, get_publisher
from wcs.users import User
@ -215,11 +216,13 @@ def test_formdata():
formdef.name = 'test'
formdef.fields = [
fields.StringField(id='0', label='foobar', varname='foobar'),
fields.StringField(id='1', label='foobar2'),]
fields.StringField(id='1', label='foobar2'),
fields.DateField(id='2', label='foobar3', varname='date'),]
formdef.store()
formdata = formdef.data_class()()
formdata.data = {'0': 'foo@localhost', '1': 'xxx'}
date = time.strptime('2014-01-20', '%Y-%m-%d')
formdata.data = {'0': 'foo@localhost', '1': 'xxx', '2': date}
formdata.user_id = user.id
formdata.just_created()
formdata.store()
@ -228,7 +231,8 @@ def test_formdata():
assert 'last_update_time' in resp.json
assert resp.json['user']['name'] == user.name
assert resp.json['fields']['foobar'] == 'foo@localhost'
assert len(resp.json['fields']) == 1 # foobar2 has no varname, not in json
assert resp.json['fields']['date'] == '2014-01-20'
assert len(resp.json['fields']) == 2 # foobar2 has no varname, not in json
def test_myspace_forms():
FormDef.wipe()

View File

@ -776,6 +776,12 @@ class DateField(WidgetField):
except TypeError:
return value
def get_json_value(self, value):
try:
return strftime('%Y-%m-%d', value)
except TypeError:
return ''
register_field_class(DateField)