0001-workflow-fix-auto-jump-to-unknown-status-43242.patch
tests/test_backoffice_pages.py | ||
---|---|---|
5266 | 5266 | |
5267 | 5267 | |
5268 | 5268 |
def test_workflow_jump_previous_auto(pub): |
5269 |
user = create_user(pub)
|
|
5269 |
create_user(pub) |
|
5270 | 5270 |
create_environment(pub) |
5271 | 5271 | |
5272 | 5272 |
wf = Workflow(name='blah') |
... | ... | |
5318 | 5318 |
assert formdata.status == 'wf-south' |
5319 | 5319 |
assert formdata.workflow_data['_markers_stack'] == [{'status_id': 'north'}] |
5320 | 5320 | |
5321 |
# no marker (workflow inconsistency) |
|
5322 |
formdata.workflow_data['_markers_stack'] = [] |
|
5323 |
formdata.store() |
|
5324 |
resp = app.get('/backoffice/management/form-title/%s/' % formdata.id) |
|
5325 |
resp = resp.form.submit('button_back') |
|
5326 |
resp = resp.follow() |
|
5327 |
formdata = formdef.data_class().get(formdata.id) |
|
5328 |
assert formdata.status == 'wf-south' |
|
5329 |
assert not formdata.workflow_data['_markers_stack'] |
|
5330 | ||
5331 |
# unknown marker (workflow inconsistency) |
|
5332 |
formdata.workflow_data['_markers_stack'] = [{'status_id': 'unknown_status'}] |
|
5333 |
formdata.store() |
|
5334 |
resp = app.get('/backoffice/management/form-title/%s/' % formdata.id) |
|
5335 |
resp = resp.form.submit('button_back') |
|
5336 |
resp = resp.follow() |
|
5337 |
formdata = formdef.data_class().get(formdata.id) |
|
5338 |
assert formdata.status == 'wf-south' |
|
5339 | ||
5321 | 5340 | |
5322 | 5341 |
def test_backoffice_fields(pub): |
5323 | 5342 |
user = create_user(pub) |
wcs/formdata.py | ||
---|---|---|
578 | 578 |
wf_status.evaluate_live_form(form, self, user) |
579 | 579 | |
580 | 580 |
def pop_previous_marked_status(self): |
581 |
if not self.workflow_data or not '_markers_stack' in self.workflow_data:
|
|
581 |
if not self.workflow_data or '_markers_stack' not in self.workflow_data:
|
|
582 | 582 |
return None |
583 | 583 |
try: |
584 | 584 |
marker_data = self.workflow_data['_markers_stack'].pop() |
585 | 585 |
status_id = marker_data['status_id'] |
586 | 586 |
except IndexError: |
587 | 587 |
return None |
588 |
return self.formdef.workflow.get_status(status_id) |
|
588 |
try: |
|
589 |
return self.formdef.workflow.get_status(status_id) |
|
590 |
except KeyError: |
|
591 |
return None |
|
589 | 592 | |
590 | 593 |
def jump_status(self, status_id): |
591 | 594 |
if status_id == '_previous': |
592 |
- |