workflows: mappings display in inspect view (#42239)
This commit is contained in:
parent
d70d44c00c
commit
411ed67118
|
@ -5705,7 +5705,7 @@ def test_backoffice_forms_condition_on_button(pub):
|
|||
|
||||
|
||||
def test_workflow_inspect_page(pub):
|
||||
create_superuser(pub)
|
||||
admin = create_user(pub, is_admin=True)
|
||||
create_environment(pub, set_receiver=True)
|
||||
|
||||
workflow = Workflow.get_default_workflow()
|
||||
|
@ -5729,6 +5729,40 @@ def test_workflow_inspect_page(pub):
|
|||
resp = app.get('/backoffice/workflows/%s/inspect' % workflow.id)
|
||||
assert '23 hours' in resp.text
|
||||
|
||||
target_formdef = FormDef()
|
||||
target_formdef.name = 'target form'
|
||||
target_formdef.workflow_roles = {'_receiver': 1}
|
||||
target_formdef.backoffice_submission_roles = admin.roles[:]
|
||||
target_formdef.fields = [
|
||||
fields.StringField(id='0', label='string', varname='foo_string'),
|
||||
fields.FileField(id='1', label='file', type='file', varname='foo_file'),
|
||||
]
|
||||
|
||||
st2 = workflow.add_status('Status2')
|
||||
|
||||
target_formdef.store()
|
||||
create_formdata = CreateFormdataWorkflowStatusItem()
|
||||
create_formdata.id = '_create_formdata'
|
||||
create_formdata.varname = 'resubmitted'
|
||||
create_formdata.draft = True
|
||||
create_formdata.formdef_slug = target_formdef.url_name
|
||||
create_formdata.keep_user = True
|
||||
create_formdata.backoffice_submission = True
|
||||
create_formdata.mappings = [
|
||||
Mapping(field_id='0', expression='=form_var_toto_string'),
|
||||
Mapping(field_id='1', expression='=form_var_toto_file_raw'),
|
||||
Mapping(field_id='2', expression='=form_var_foobar_raw'),
|
||||
]
|
||||
create_formdata.parent = st2
|
||||
st2.items.append(create_formdata)
|
||||
workflow.store()
|
||||
|
||||
resp = app.get('/backoffice/workflows/%s/inspect' % workflow.id)
|
||||
assert (
|
||||
'<ul class="mappings"><li>string → =form_var_toto_string</li>'
|
||||
'<li>file → =form_var_toto_file_raw</li>'
|
||||
'<li>#2 → =form_var_foobar_raw</li></ul>') in resp.text
|
||||
|
||||
|
||||
def test_workflow_comment_required(pub):
|
||||
user = create_user(pub)
|
||||
|
|
|
@ -285,6 +285,17 @@ class CreateFormdataWorkflowStatusItem(WorkflowStatusItem):
|
|||
title=_('Include new form in the form history'),
|
||||
value=self.attach_to_history)
|
||||
|
||||
def get_mappings_parameter_view_value(self):
|
||||
to_id_fields = {str(field.id): field for field in self.formdef.get_widget_fields()}
|
||||
result = []
|
||||
for mapping in self.mappings or []:
|
||||
try:
|
||||
dest_field = to_id_fields[str(mapping.field_id)]
|
||||
result.append(htmltext('<li>%s → %s</li>') % (dest_field.label, mapping.expression))
|
||||
except KeyError:
|
||||
result.append(htmltext('<li>#%s → %s</li>') % (mapping.field_id, mapping.expression))
|
||||
return htmltext('<ul class="mappings">%s</ul>') % htmltext('').join(result)
|
||||
|
||||
def _common_varnames(self):
|
||||
'''Compute common varnames between the targeted formdef and all formdefs related to the parent workflow.'''
|
||||
assert self.formdef
|
||||
|
|
Loading…
Reference in New Issue