general: expose structured data in substitution variables (#7472)
This commit is contained in:
parent
be261fe9a5
commit
4d1119ca47
|
@ -69,6 +69,13 @@ def get_dict_with_varnames(fields, data, formdata=None, varnames_only=False):
|
|||
formdata.get_url(), field.id)
|
||||
elif raw_value:
|
||||
new_data['var_%s_raw' % field.varname] = raw_value
|
||||
if field.store_structured_value:
|
||||
structured_value = data.get('%s_structured' % field.id)
|
||||
if structured_value:
|
||||
for k, v in structured_value.items():
|
||||
if k in ('id', 'text'):
|
||||
continue
|
||||
new_data['var_%s_%s' % (field.varname, k)] = v
|
||||
return new_data
|
||||
|
||||
def flatten_dict(d):
|
||||
|
|
|
@ -299,7 +299,12 @@ class FormDef(StorableObject):
|
|||
for field in self.workflow.variables_formdef.fields:
|
||||
if not field.varname:
|
||||
continue
|
||||
variables['form_option_' + field.varname] = self.workflow_options.get(field.varname)
|
||||
option_name = 'form_option_' + field.varname
|
||||
variables[option_name] = self.workflow_options.get(field.varname)
|
||||
if field.store_structured_value:
|
||||
if '%s_structured' % field.varname in self.workflow_options:
|
||||
variables[option_name + '_structured'] = self.workflow_options.get(
|
||||
'%s_structured' % field.varname)
|
||||
return variables
|
||||
|
||||
def get_variable_options_for_form(self):
|
||||
|
@ -321,6 +326,10 @@ class FormDef(StorableObject):
|
|||
if not field.varname:
|
||||
continue
|
||||
variables[field.varname] = data.get(field.id)
|
||||
if field.store_display_value:
|
||||
variables[field.varname + '_display'] = data.get(field.id + '_display')
|
||||
if field.store_structured_value:
|
||||
variables[field.varname + '_structured'] = data.get(field.id + '_structured')
|
||||
if not self.workflow_options:
|
||||
self.workflow_options = {}
|
||||
self.workflow_options.update(variables)
|
||||
|
|
Loading…
Reference in New Issue