workfows: display/accept map by varname field when a target form is set (#45630)
This commit is contained in:
parent
289067de6d
commit
c917bc1455
|
@ -6061,6 +6061,23 @@ def test_create_formdata(pub):
|
||||||
pq = resp.pyquery.remove_namespaces()
|
pq = resp.pyquery.remove_namespaces()
|
||||||
assert pq('.error').text() == 'Some destination fields are duplicated'
|
assert pq('.error').text() == 'Some destination fields are duplicated'
|
||||||
|
|
||||||
|
# check setting map_fields_by_varname on new action
|
||||||
|
resp = app.get('/backoffice/workflows/%s/status/%s/' % (wf.id, st2.id))
|
||||||
|
resp.forms['new-action-form']['action-formdata-action'] = 'New Form Creation'
|
||||||
|
resp = resp.forms['new-action-form'].submit()
|
||||||
|
resp = resp.follow()
|
||||||
|
resp = resp.click(r'New Form Creation \(not configured\)')
|
||||||
|
resp.form['formdef_slug'] = 'target-form' # set target form
|
||||||
|
resp = resp.form.submit('submit')
|
||||||
|
assert 'Please define new mappings' in resp
|
||||||
|
assert resp.form['map_fields_by_varname'].checked is False
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
def test_block_new(pub, blocks_feature):
|
def test_block_new(pub, blocks_feature):
|
||||||
create_superuser(pub)
|
create_superuser(pub)
|
||||||
|
|
|
@ -258,7 +258,7 @@ class CreateFormdataWorkflowStatusItem(WorkflowStatusItem):
|
||||||
title=_(self.mappings_label),
|
title=_(self.mappings_label),
|
||||||
to_formdef=formdef,
|
to_formdef=formdef,
|
||||||
value=self.mappings)
|
value=self.mappings)
|
||||||
if form.is_submitted():
|
if form.is_submitted() and get_request().form.get('map_fields_by_varname') != 'yes':
|
||||||
# do not validate form if formdef is changed and there is no mappings
|
# do not validate form if formdef is changed and there is no mappings
|
||||||
if formdef_slug != self.formdef_slug and not widget.parse():
|
if formdef_slug != self.formdef_slug and not widget.parse():
|
||||||
form.get_widget('%smappings' % prefix).set_error(_('Please define new mappings'))
|
form.get_widget('%smappings' % prefix).set_error(_('Please define new mappings'))
|
||||||
|
@ -267,7 +267,7 @@ class CreateFormdataWorkflowStatusItem(WorkflowStatusItem):
|
||||||
title=_('Identifier'), value=self.varname,
|
title=_('Identifier'), value=self.varname,
|
||||||
hint=_(self.varname_hint),
|
hint=_(self.varname_hint),
|
||||||
advanced=not(bool(self.varname)))
|
advanced=not(bool(self.varname)))
|
||||||
if 'map_fields_by_varname' in parameters and self.formdef:
|
if 'map_fields_by_varname' in parameters and formdef:
|
||||||
form.add(CheckboxWidget, '%smap_fields_by_varname' % prefix,
|
form.add(CheckboxWidget, '%smap_fields_by_varname' % prefix,
|
||||||
title=_('Map fields by varname'),
|
title=_('Map fields by varname'),
|
||||||
value=self.map_fields_by_varname,
|
value=self.map_fields_by_varname,
|
||||||
|
|
Loading…
Reference in New Issue