Projet

Général

Profil

0001-workflows-redirect-to-correct-status-in-case-of-mult.patch

Frédéric Péters, 23 mars 2016 10:01

Télécharger (2,36 ko)

Voir les différences:

Subject: [PATCH] workflows: redirect to correct status in case of multiple
 triggers (#10388)

 tests/test_form_pages.py | 21 ++++++++++++++++++++-
 wcs/wf/jump.py           |  2 +-
 2 files changed, 21 insertions(+), 2 deletions(-)
tests/test_form_pages.py
2377 2377
    jump.status = 'st2'
2378 2378
    st1.items.append(jump)
2379 2379
    jump.parent = st1
2380

  
2381
    jump2 = JumpWorkflowStatusItem()
2382
    jump2.trigger = 'YYY'
2383
    jump2.status = 'st3'
2384
    st1.items.append(jump2)
2385
    jump2.parent = st1
2386

  
2380 2387
    st2 = workflow.add_status('Status2', 'st2')
2388
    st3 = workflow.add_status('Status3', 'st3')
2381 2389
    workflow.store()
2382 2390

  
2383 2391
    formdef.workflow_id = workflow.id
......
2405 2413
    user.store()
2406 2414
    resp = app.post(formdata.get_url() + 'jump/trigger/XXX', status=302)
2407 2415

  
2408
    assert formdef.data_class().get(formdata.id).status == 'wf-st2'
2416
    formdata = formdef.data_class().get(formdata.id)
2417
    assert formdata.status == 'wf-st2'
2418

  
2419
    formdata.status = 'wf-st1'
2420
    formdata.store()
2421
    resp = app.post(formdata.get_url() + 'jump/trigger/YYY', status=403)
2422
    jump2.by = [role.id]
2423
    workflow.store()
2424
    resp = app.post(formdata.get_url() + 'jump/trigger/YYY', status=302)
2425
    formdata = formdef.data_class().get(formdata.id)
2426
    assert formdata.status == 'wf-st3'
2427

  
2409 2428

  
2410 2429
def test_form_worklow_multiple_identical_status(pub):
2411 2430
    user = create_user(pub)
wcs/wf/jump.py
78 78
                workflow_data = None
79 79
                if hasattr(get_request(), 'json'):
80 80
                    workflow_data = get_request().json
81
                url = jump_and_perform(self.formdata, self.wfstatusitem.status,
81
                url = jump_and_perform(self.formdata, item.status,
82 82
                        workflow_data=workflow_data)
83 83
                if get_request().is_json():
84 84
                    return json.dumps({'err': 0, 'url': url})
85
-