workflows: redirect to correct status in case of multiple triggers (#10388)
This commit is contained in:
parent
18fe075663
commit
654b3df9c6
|
@ -2377,7 +2377,15 @@ def test_form_workflow_trigger(pub):
|
|||
jump.status = 'st2'
|
||||
st1.items.append(jump)
|
||||
jump.parent = st1
|
||||
|
||||
jump2 = JumpWorkflowStatusItem()
|
||||
jump2.trigger = 'YYY'
|
||||
jump2.status = 'st3'
|
||||
st1.items.append(jump2)
|
||||
jump2.parent = st1
|
||||
|
||||
st2 = workflow.add_status('Status2', 'st2')
|
||||
st3 = workflow.add_status('Status3', 'st3')
|
||||
workflow.store()
|
||||
|
||||
formdef.workflow_id = workflow.id
|
||||
|
@ -2405,7 +2413,18 @@ def test_form_workflow_trigger(pub):
|
|||
user.store()
|
||||
resp = app.post(formdata.get_url() + 'jump/trigger/XXX', status=302)
|
||||
|
||||
assert formdef.data_class().get(formdata.id).status == 'wf-st2'
|
||||
formdata = formdef.data_class().get(formdata.id)
|
||||
assert formdata.status == 'wf-st2'
|
||||
|
||||
formdata.status = 'wf-st1'
|
||||
formdata.store()
|
||||
resp = app.post(formdata.get_url() + 'jump/trigger/YYY', status=403)
|
||||
jump2.by = [role.id]
|
||||
workflow.store()
|
||||
resp = app.post(formdata.get_url() + 'jump/trigger/YYY', status=302)
|
||||
formdata = formdef.data_class().get(formdata.id)
|
||||
assert formdata.status == 'wf-st3'
|
||||
|
||||
|
||||
def test_form_worklow_multiple_identical_status(pub):
|
||||
user = create_user(pub)
|
||||
|
|
|
@ -78,7 +78,7 @@ class TriggerDirectory(Directory):
|
|||
workflow_data = None
|
||||
if hasattr(get_request(), 'json'):
|
||||
workflow_data = get_request().json
|
||||
url = jump_and_perform(self.formdata, self.wfstatusitem.status,
|
||||
url = jump_and_perform(self.formdata, item.status,
|
||||
workflow_data=workflow_data)
|
||||
if get_request().is_json():
|
||||
return json.dumps({'err': 0, 'url': url})
|
||||
|
|
Loading…
Reference in New Issue