tests: check behaviour of global actions jumping to current status (#26872)
This commit is contained in:
parent
2e24fa95d8
commit
89675bbdcb
|
@ -28,6 +28,7 @@ from wcs.workflows import (Workflow, EditableWorkflowStatusItem,
|
|||
DisplayMessageWorkflowStatusItem, WorkflowBackofficeFieldsFormDef,
|
||||
ChoiceWorkflowStatusItem, JumpOnSubmitWorkflowStatusItem,
|
||||
SendmailWorkflowStatusItem)
|
||||
from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem
|
||||
from wcs.wf.export_to_model import ExportToModel, transform_to_pdf
|
||||
from wcs.wf.jump import JumpWorkflowStatusItem
|
||||
from wcs.wf.attachment import AddAttachmentWorkflowStatusItem
|
||||
|
@ -4912,6 +4913,62 @@ def test_user_global_action(pub):
|
|||
assert 'HELLO WORLD GLOBAL ACTION' in resp.body
|
||||
assert formdef.data_class().get(formdata.id).status == 'wf-finished'
|
||||
|
||||
def test_user_global_action_same_status_store(pub):
|
||||
user = create_user(pub)
|
||||
|
||||
workflow = Workflow.get_default_workflow()
|
||||
workflow.id = '2'
|
||||
|
||||
workflow.backoffice_fields_formdef = WorkflowBackofficeFieldsFormDef(workflow)
|
||||
workflow.backoffice_fields_formdef.fields = [
|
||||
fields.StringField(id='bo1', label='bo field 1', type='string'),
|
||||
]
|
||||
action = workflow.add_global_action('FOOBAR')
|
||||
jump = action.append_item('jump')
|
||||
jump.status = 'new'
|
||||
trigger = action.triggers[0]
|
||||
trigger.roles = ['_submitter']
|
||||
|
||||
new_status = workflow.possible_status[1]
|
||||
|
||||
setbo = SetBackofficeFieldsWorkflowStatusItem()
|
||||
setbo.parent = new_status
|
||||
setbo.fields = [{'field_id': 'bo1', 'value': '123'}]
|
||||
new_status.items = [setbo] + new_status.items
|
||||
|
||||
workflow.store()
|
||||
|
||||
formdef = FormDef()
|
||||
formdef.name = 'test global action'
|
||||
formdef.fields = []
|
||||
formdef.workflow_id = workflow.id
|
||||
formdef.workflow_roles = {}
|
||||
formdef.store()
|
||||
|
||||
formdef.data_class().wipe()
|
||||
|
||||
app = login(get_app(pub), username='foo', password='foo')
|
||||
resp = app.get(formdef.get_url())
|
||||
resp = resp.form.submit('submit')
|
||||
resp = resp.form.submit('submit')
|
||||
|
||||
assert formdef.data_class().count() == 1
|
||||
formdata = formdef.data_class().select()[0]
|
||||
assert formdata.data['bo1'] == '123'
|
||||
|
||||
# change global action
|
||||
setbo.fields = [{'field_id': 'bo1', 'value': '321'}]
|
||||
workflow.store()
|
||||
|
||||
resp = app.get(formdata.get_url())
|
||||
assert 'button-action-1' in resp.form.fields
|
||||
resp = resp.form.submit('button-action-1') # click global action
|
||||
|
||||
# check status actions are not rerun
|
||||
resp = app.get(formdata.get_url())
|
||||
assert formdef.data_class().get(formdata.id).status == 'wf-new'
|
||||
assert formdef.data_class().get(formdata.id).data['bo1'] == '123'
|
||||
|
||||
def test_condition_on_action(pub, emails):
|
||||
user = create_user(pub)
|
||||
|
||||
|
|
Loading…
Reference in New Issue