formdata: add workflow_data to lazy formdata (#49196)
This commit is contained in:
parent
ec1412dda0
commit
0db2491813
|
@ -792,6 +792,34 @@ def test_lazy_formdata_duplicated_varname(pub, variable_test_data):
|
|||
assert lazy_formdata.var.foo_foo == 'baz' # 2nd value
|
||||
|
||||
|
||||
def test_lazy_formdata_workflow_data(pub):
|
||||
formdef = FormDef()
|
||||
formdef.name = 'foobar'
|
||||
formdef.fields = []
|
||||
formdef.store()
|
||||
|
||||
formdata = formdef.data_class()()
|
||||
formdata.data = {}
|
||||
formdata.workflow_data = {
|
||||
'_markers_stack': ['1', '2', '3'],
|
||||
'foo_bar': 'plop',
|
||||
'other': {'test': 'foobar'},
|
||||
}
|
||||
pub.substitutions.feed(pub)
|
||||
pub.substitutions.feed(formdef)
|
||||
pub.substitutions.feed(formdata)
|
||||
|
||||
context = pub.substitutions.get_context_variables(mode='lazy')
|
||||
assert 'form_workflow_data_foo_bar' in context.get_flat_keys()
|
||||
assert context['form_workflow_data_foo_bar'] == 'plop'
|
||||
assert 'form_workflow_data_other_test' in context.get_flat_keys()
|
||||
assert context['form_workflow_data_other_test'] == 'foobar'
|
||||
|
||||
assert 'form_workflow_data__markers_stack' not in context.get_flat_keys()
|
||||
with pytest.raises(KeyError):
|
||||
context['form_workflow_data__markers_stack']
|
||||
|
||||
|
||||
def test_lazy_formdata_live_item(pub):
|
||||
CardDef.wipe()
|
||||
carddef = CardDef()
|
||||
|
|
|
@ -500,6 +500,11 @@ class LazyFormData(LazyFormDef):
|
|||
return None
|
||||
return formdata.get_substitution_variables()
|
||||
|
||||
@property
|
||||
def workflow_data(self):
|
||||
data = self._formdata.workflow_data or {}
|
||||
return {k: data[k] for k in data if not k.startswith('_')}
|
||||
|
||||
def export_to_json(self, include_files=True):
|
||||
# this gets used to generate an email attachment :/
|
||||
return self._formdata.export_to_json(include_files=include_files)
|
||||
|
|
Loading…
Reference in New Issue