workflows: display Common varnames only if formdef is set (#49302)

This commit is contained in:
Lauréline Guérin 2020-12-10 09:50:57 +01:00
parent 04aeca215e
commit 016329a7e0
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 15 additions and 4 deletions

View File

@ -1534,6 +1534,17 @@ def test_create_formdata(pub):
resp.form['map_fields_by_varname'].checked = True
resp = resp.form.submit('submit')
resp = resp.follow()
wf2 = Workflow.get(wf2.id)
assert wf2.possible_status[-1].items[-1].map_fields_by_varname is True
assert wf2.possible_status[-1].items[-1].mappings is None
wf = Workflow.get(wf.id)
st2 = wf.possible_status[-1]
assert wf.possible_status[-1].items[-1].map_fields_by_varname is True
assert wf.possible_status[-1].items[-1].mappings is None
assert wf.possible_status[-1].items[-1].formdef_slug == 'target-form'
resp = app.get('/backoffice/workflows/%s/status/%s/items/%s/' % (wf.id, st2.id, st2.items[-1].id))
resp.form['formdef_slug'] = '' # unset target form
resp.form.submit('submit')
wf = Workflow.get(wf.id)
assert wf.possible_status[-1].items[-1].formdef_slug is None
assert wf.possible_status[-1].items[-1].map_fields_by_varname is True
resp = app.get('/backoffice/workflows/%s/status/%s/items/%s/' % (wf.id, st2.id, st2.items[-1].id))
resp.form['formdef_slug'] = 'target-form' # reset target form
resp.form.submit('submit') # no error

View File

@ -283,7 +283,7 @@ class CreateFormdataWorkflowStatusItem(WorkflowStatusItem):
value=self.map_fields_by_varname,
advanced=(
self.map_fields_by_varname == CreateFormdataWorkflowStatusItem.map_fields_by_varname))
if self.map_fields_by_varname:
if self.map_fields_by_varname and self.formdef:
common_varnames = [htmltext('<tt>%s</tt>') % varname for varname in self._common_varnames()]
common_varnames = htmltext(', ').join(common_varnames)
form.widgets.append(