forms: feed transient_formdata when computing field values for postconditions (#59399)
This commit is contained in:
parent
ac667a5021
commit
f3960f227c
|
@ -1218,6 +1218,7 @@ def test_dynamic_item_field_from_custom_view_on_cards(pub):
|
|||
# use custom view as source
|
||||
ds = {'type': 'carddef:%s:%s' % (carddef.url_name, custom_view.slug)}
|
||||
formdef.fields = [
|
||||
fields.PageField(id='2', label='1st page', type='page'),
|
||||
fields.ItemField(id='0', type='item', label='item', varname='blah', items=['foo', 'bar', 'baz']),
|
||||
fields.ItemField(id='1', label='string', type='item', data_source=ds, display_disabled_items=True),
|
||||
]
|
||||
|
@ -1237,12 +1238,13 @@ def test_dynamic_item_field_from_custom_view_on_cards(pub):
|
|||
|
||||
resp.form['f1'] = resp.form['f1'].options[0][0]
|
||||
resp = resp.form.submit('submit') # -> validation page
|
||||
assert 'Technical error' not in resp.text
|
||||
resp = resp.form.submit('submit') # -> submit
|
||||
assert formdef.data_class().select()[0].data['1'] in baz_ids
|
||||
assert formdef.data_class().select()[0].data['1_structured']['item'] == 'baz'
|
||||
|
||||
# same in autocomplete mode
|
||||
formdef.fields[1].display_mode = 'autocomplete'
|
||||
formdef.fields[2].display_mode = 'autocomplete'
|
||||
formdef.store()
|
||||
app = get_app(pub)
|
||||
resp = app.get('/test/')
|
||||
|
|
|
@ -1092,7 +1092,8 @@ class FormPage(Directory, FormTemplateMixin):
|
|||
# variables.
|
||||
form_data = copy.copy(session.get_by_magictoken(magictoken, {}))
|
||||
try:
|
||||
data = self.formdef.get_data(form, raise_on_error=True)
|
||||
with get_publisher().substitutions.temporary_feed(transient_formdata, force_mode='lazy'):
|
||||
data = self.formdef.get_data(form, raise_on_error=True)
|
||||
except SetValueError:
|
||||
return self.page(
|
||||
page,
|
||||
|
|
Loading…
Reference in New Issue