workflows: mappings display in inspect view (#42239)

This commit is contained in:
Lauréline Guérin 2020-06-22 16:39:41 +02:00
parent d70d44c00c
commit 411ed67118
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 46 additions and 1 deletions

View File

@ -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)

View File

@ -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