1325 |
1325 |
resp = resp.form.submit()
|
1326 |
1326 |
# second field value is kept
|
1327 |
1327 |
assert resp.form['f2'].value == '1'
|
|
1328 |
|
|
1329 |
|
|
1330 |
def test_block_used_in_later_prefill(pub, blocks_feature):
|
|
1331 |
FormDef.wipe()
|
|
1332 |
BlockDef.wipe()
|
|
1333 |
|
|
1334 |
block = BlockDef()
|
|
1335 |
block.name = 'foobar'
|
|
1336 |
block.fields = [
|
|
1337 |
fields.StringField(id='123', required=True, label='Amount', type='string', varname='amount'),
|
|
1338 |
]
|
|
1339 |
block.store()
|
|
1340 |
|
|
1341 |
formdef = FormDef()
|
|
1342 |
formdef.name = 'form title'
|
|
1343 |
formdef.fields = [
|
|
1344 |
fields.PageField(id='0', label='1st page', type='page'),
|
|
1345 |
fields.BlockField(
|
|
1346 |
id='1', label='test', type='block:foobar', varname='data', max_items=3, hint='hintblock'
|
|
1347 |
),
|
|
1348 |
fields.PageField(id='2', label='2nd page', type='page'),
|
|
1349 |
fields.StringField(
|
|
1350 |
id='3', label='sum', prefill={'type': 'string', 'value': '{{form_var_data|getlist:"amount"|sum}}'}
|
|
1351 |
),
|
|
1352 |
]
|
|
1353 |
formdef.store()
|
|
1354 |
|
|
1355 |
app = get_app(pub)
|
|
1356 |
resp = app.get(formdef.get_url())
|
|
1357 |
resp.form['f1$element0$f123'] = '5'
|
|
1358 |
resp = resp.form.submit('f1$add_element')
|
|
1359 |
resp.form['f1$element1$f123'] = '3'
|
|
1360 |
resp = resp.form.submit('f1$add_element')
|
|
1361 |
resp.form['f1$element2$f123'] = '2'
|
|
1362 |
|
|
1363 |
resp = resp.form.submit('submit') # -> 2nd page
|
|
1364 |
assert resp.form['f3'].value == '10'
|
|
1365 |
|
|
1366 |
resp = resp.form.submit('previous') # -> 1st page
|
|
1367 |
resp.form['f1$element2$f123'] = '1'
|
|
1368 |
resp = resp.form.submit('submit') # -> 2nd page
|
|
1369 |
assert resp.form['f3'].value == '9'
|