From ed9f1fbb7ef06f4653a3c32dd1f434dc81bfd1e9 Mon Sep 17 00:00:00 2001 From: Thomas NOEL Date: Thu, 16 Apr 2015 12:32:46 +0200 Subject: [PATCH] json: export DateField as YYYY-MM-DD (#6927) --- tests/test_api.py | 10 +++++++--- wcs/fields.py | 6 ++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/tests/test_api.py b/tests/test_api.py index 9e3d24f..7620fc7 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -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,4 +231,5 @@ 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 diff --git a/wcs/fields.py b/wcs/fields.py index 25d5aef..958a018 100644 --- a/wcs/fields.py +++ b/wcs/fields.py @@ -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) -- 2.1.4