0001-forms-always-set-prefill-attributes-10760.patch
tests/test_form_pages.py | ||
---|---|---|
2039 | 2039 |
formdef = create_formdef() |
2040 | 2040 |
formdef.fields = [ |
2041 | 2041 |
fields.MapField(id='0', label='map'), |
2042 |
fields.StringField(id='1', label='street', required=False,
|
|
2042 |
fields.StringField(id='1', label='street', required=True,
|
|
2043 | 2043 |
prefill={'type': 'geolocation', 'value': 'road'}), |
2044 | 2044 |
] |
2045 | 2045 |
formdef.store() |
... | ... | |
2048 | 2048 |
assert 'qommon.map.js' in resp.body |
2049 | 2049 |
assert 'qommon.geolocation.js' in resp.body |
2050 | 2050 |
# with a real user interaction this would get set by javascript |
2051 |
resp.forms[0]['f0$latlng'] = '1.234;-1.234' |
|
2051 |
resp.forms[0]['f0$latlng'].value = '1.234;-1.234'
|
|
2052 | 2052 |
assert 'data-geolocation="road"' in resp.body |
2053 | 2053 | |
2054 |
# check required field |
|
2055 |
resp = resp.forms[0].submit('submit') |
|
2056 |
assert not 'Check values then click submit.' in resp.body |
|
2057 |
assert 'data-geolocation="road"' in resp.body |
|
2058 |
resp.forms[0]['f1'].value = 'bla' |
|
2059 | ||
2054 | 2060 |
# check summary page |
2055 | 2061 |
resp = resp.forms[0].submit('submit') |
2056 | 2062 |
assert 'Check values then click submit.' in resp.body |
... | ... | |
2074 | 2080 |
assert formdef.data_class().count() == 1 |
2075 | 2081 |
data_id = formdef.data_class().select()[0].id |
2076 | 2082 |
data = formdef.data_class().get(data_id) |
2077 |
assert data.data == {'1': None, '0': '1.234;-1.234'}
|
|
2083 |
assert data.data == {'1': 'bla', '0': '1.234;-1.234'}
|
|
2078 | 2084 | |
2079 | 2085 |
def test_form_map_multi_page(pub): |
2080 | 2086 |
formdef = create_formdef() |
wcs/forms/root.py | ||
---|---|---|
420 | 420 |
if not one: |
421 | 421 |
req.form = {} |
422 | 422 | |
423 |
for field in displayed_fields: |
|
424 |
if field.prefill: |
|
425 |
# always set additional attributes as they will be used for |
|
426 |
# "live prefill", regardless of existing data. |
|
427 |
form.get_widget('f%s' % field.id).prefill_attributes = field.get_prefill_attributes() |
|
428 | ||
423 | 429 |
self.html_top(self.formdef.name) |
424 | 430 |
r += self.form_side(0, page_no, log_detail=log_detail, data=data) |
425 | 431 |
r += get_session().display_message() |
426 |
- |