28 |
28 |
DisplayMessageWorkflowStatusItem, WorkflowBackofficeFieldsFormDef,
|
29 |
29 |
ChoiceWorkflowStatusItem, JumpOnSubmitWorkflowStatusItem,
|
30 |
30 |
SendmailWorkflowStatusItem)
|
|
31 |
from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem
|
31 |
32 |
from wcs.wf.export_to_model import ExportToModel, transform_to_pdf
|
32 |
33 |
from wcs.wf.jump import JumpWorkflowStatusItem
|
33 |
34 |
from wcs.wf.attachment import AddAttachmentWorkflowStatusItem
|
... | ... | |
4959 |
4960 |
assert 'HELLO WORLD GLOBAL ACTION' in resp.body
|
4960 |
4961 |
assert formdef.data_class().get(formdata.id).status == 'wf-finished'
|
4961 |
4962 |
|
|
4963 |
def test_user_global_action_same_status_store(pub):
|
|
4964 |
user = create_user(pub)
|
|
4965 |
|
|
4966 |
workflow = Workflow.get_default_workflow()
|
|
4967 |
workflow.id = '2'
|
|
4968 |
|
|
4969 |
workflow.backoffice_fields_formdef = WorkflowBackofficeFieldsFormDef(workflow)
|
|
4970 |
workflow.backoffice_fields_formdef.fields = [
|
|
4971 |
fields.StringField(id='bo1', label='bo field 1', type='string'),
|
|
4972 |
]
|
|
4973 |
action = workflow.add_global_action('FOOBAR')
|
|
4974 |
jump = action.append_item('jump')
|
|
4975 |
jump.status = 'new'
|
|
4976 |
trigger = action.triggers[0]
|
|
4977 |
trigger.roles = ['_submitter']
|
|
4978 |
|
|
4979 |
new_status = workflow.possible_status[1]
|
|
4980 |
|
|
4981 |
setbo = SetBackofficeFieldsWorkflowStatusItem()
|
|
4982 |
setbo.parent = new_status
|
|
4983 |
setbo.fields = [{'field_id': 'bo1', 'value': '123'}]
|
|
4984 |
new_status.items = [setbo] + new_status.items
|
|
4985 |
|
|
4986 |
workflow.store()
|
|
4987 |
|
|
4988 |
formdef = FormDef()
|
|
4989 |
formdef.name = 'test global action'
|
|
4990 |
formdef.fields = []
|
|
4991 |
formdef.workflow_id = workflow.id
|
|
4992 |
formdef.workflow_roles = {}
|
|
4993 |
formdef.store()
|
|
4994 |
|
|
4995 |
formdef.data_class().wipe()
|
|
4996 |
|
|
4997 |
app = login(get_app(pub), username='foo', password='foo')
|
|
4998 |
resp = app.get(formdef.get_url())
|
|
4999 |
resp = resp.form.submit('submit')
|
|
5000 |
resp = resp.form.submit('submit')
|
|
5001 |
|
|
5002 |
assert formdef.data_class().count() == 1
|
|
5003 |
formdata = formdef.data_class().select()[0]
|
|
5004 |
assert formdata.data['bo1'] == '123'
|
|
5005 |
|
|
5006 |
# change global action
|
|
5007 |
setbo.fields = [{'field_id': 'bo1', 'value': '321'}]
|
|
5008 |
workflow.store()
|
|
5009 |
|
|
5010 |
resp = app.get(formdata.get_url())
|
|
5011 |
assert 'button-action-1' in resp.form.fields
|
|
5012 |
resp = resp.form.submit('button-action-1') # click global action
|
|
5013 |
|
|
5014 |
# check status actions are not rerun
|
|
5015 |
resp = app.get(formdata.get_url())
|
|
5016 |
assert formdef.data_class().get(formdata.id).status == 'wf-new'
|
|
5017 |
assert formdef.data_class().get(formdata.id).data['bo1'] == '123'
|
|
5018 |
|
4962 |
5019 |
def test_condition_on_action(pub, emails):
|
4963 |
5020 |
user = create_user(pub)
|
4964 |
5021 |
|
4965 |
|
-
|