form: fix handling of date in iso format in French-configured sites (#6390)

This commit is contained in:
Frédéric Péters 2015-02-02 09:46:25 +01:00
parent 1505495a35
commit e54d2eb212
2 changed files with 8 additions and 2 deletions

View File

@ -242,16 +242,21 @@ def test_date_widget():
req.form = {}
assert widget.parse() is None
pub.cfg['language'] = {'language': 'en'}
widget = DateWidget('test')
mock_form_submission(req, widget, {'test': '2014-1-20'})
assert not widget.has_error()
assert widget.parse() == '2014-1-20'
assert widget.parse() == '2014-01-20'
pub.cfg['language'] = {'language': 'fr'}
widget = DateWidget('test')
mock_form_submission(req, widget, {'test': '20/1/2014'})
assert not widget.has_error()
assert widget.parse() == '20/1/2014'
assert widget.parse() == '20/01/2014'
mock_form_submission(req, widget, {'test': '2014-1-20'})
assert not widget.has_error()
assert widget.parse() == '20/01/2014'
widget = DateWidget('test', minimum_date='1/1/2014')
mock_form_submission(req, widget, {'test': '20/1/2014'})

View File

@ -803,6 +803,7 @@ class DateWidget(StringWidget):
value = time.strptime(self.value, format_string)
except ValueError:
continue
self.value = strftime(self.get_format_string(), value)
break
else:
self.error = _('invalid date')