forms: correctly restore date fields from drafts (#23389)
This commit is contained in:
parent
9057a659b9
commit
6628b56429
|
@ -1380,6 +1380,30 @@ def test_form_draft_with_file_direct_validation(pub):
|
|||
assert 'download="test2.txt"' in resp.body
|
||||
assert resp.click('test2.txt').follow().body == 'foobar2'
|
||||
|
||||
def test_form_draft_with_date(pub):
|
||||
user = create_user(pub)
|
||||
formdef = create_formdef()
|
||||
formdef.fields = [fields.DateField(id='0', label='date', type='date')]
|
||||
formdef.enable_tracking_codes = True
|
||||
formdef.store()
|
||||
|
||||
resp = login(get_app(pub), username='foo', password='foo').get('/test/')
|
||||
formdef.data_class().wipe()
|
||||
tracking_code = get_displayed_tracking_code(resp)
|
||||
resp.forms[0]['f0'] = '2012-02-12'
|
||||
resp = resp.forms[0].submit('submit')
|
||||
|
||||
resp = login(get_app(pub), username='foo', password='foo').get('/')
|
||||
resp.forms[0]['code'] = tracking_code
|
||||
resp = resp.forms[0].submit().follow().follow().follow()
|
||||
assert '2012-02-12' in resp.body
|
||||
|
||||
# check submitted form keeps the date
|
||||
resp = resp.forms[1].submit('submit') # -> done
|
||||
resp = resp.follow()
|
||||
|
||||
assert '2012-02-12' in resp.body
|
||||
|
||||
def test_form_direct_draft_access(pub):
|
||||
user = create_user(pub)
|
||||
formdef = create_formdef()
|
||||
|
|
|
@ -632,6 +632,11 @@ class FormPage(Directory):
|
|||
req = get_request()
|
||||
for k, v in data.items():
|
||||
req.form['f%s' % k] = v
|
||||
for field in self.formdef.fields:
|
||||
if not field.id in data:
|
||||
continue
|
||||
if field.convert_value_to_str:
|
||||
req.form['f%s' % field.id] = field.convert_value_to_str(data[field.id])
|
||||
return self.validating(data)
|
||||
else:
|
||||
page_no = self.formdef.get_start_page()
|
||||
|
|
Loading…
Reference in New Issue