42 |
42 |
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
|
43 |
43 |
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem
|
44 |
44 |
from wcs.wf.resubmit import ResubmitWorkflowStatusItem
|
|
45 |
from wcs.wf.wscall import JournalWsCallErrorPart
|
45 |
46 |
from wcs.categories import Category
|
46 |
47 |
from wcs.roles import Role, logged_users_role
|
47 |
48 |
from wcs.tracking_code import TrackingCode
|
... | ... | |
4718 |
4719 |
assert resp.text.count('new-evolution-1') == 1
|
4719 |
4720 |
assert resp.text.count('new-evolution-2') == 1
|
4720 |
4721 |
|
|
4722 |
def test_form_worklow_multiple_identical_status_with_wserror(pub):
|
|
4723 |
user = create_user(pub)
|
|
4724 |
|
|
4725 |
formdef = create_formdef()
|
|
4726 |
formdef.fields = []
|
|
4727 |
formdef.store()
|
|
4728 |
|
|
4729 |
workflow = Workflow(name='test')
|
|
4730 |
st1 = workflow.add_status('Status1', 'st1')
|
|
4731 |
jump = JumpWorkflowStatusItem()
|
|
4732 |
jump.trigger = 'XXX'
|
|
4733 |
jump.status = 'st1'
|
|
4734 |
st1.items.append(jump)
|
|
4735 |
jump.parent = st1
|
|
4736 |
workflow.store()
|
|
4737 |
|
|
4738 |
formdef.workflow_id = workflow.id
|
|
4739 |
formdef.store()
|
|
4740 |
|
|
4741 |
formdef.data_class().wipe()
|
|
4742 |
formdata = formdef.data_class()()
|
|
4743 |
formdata.just_created()
|
|
4744 |
formdata.store()
|
|
4745 |
assert formdef.data_class().get(formdata.id).status == 'wf-st1'
|
|
4746 |
|
|
4747 |
app = get_app(pub)
|
|
4748 |
login(app, username='foo', password='foo')
|
|
4749 |
|
|
4750 |
Role.wipe()
|
|
4751 |
role = Role(name='xxx')
|
|
4752 |
role.allows_backoffice_access = False
|
|
4753 |
role.store()
|
|
4754 |
|
|
4755 |
jump.by = [role.id]
|
|
4756 |
workflow.store()
|
|
4757 |
user.roles = [role.id]
|
|
4758 |
user.store()
|
|
4759 |
|
|
4760 |
for i in range(3):
|
|
4761 |
resp = app.post(formdata.get_url() + 'jump/trigger/XXX', status=302)
|
|
4762 |
formdata = formdef.data_class().get(formdata.id)
|
|
4763 |
formdata.evolution[-1].add_part(JournalWsCallErrorPart('bla', 'bla', {}))
|
|
4764 |
formdata.store()
|
|
4765 |
|
|
4766 |
resp = app.get(formdata.get_url())
|
|
4767 |
assert resp.text.count('<li class="msg') == 1
|
|
4768 |
|
|
4769 |
role.allows_backoffice_access = True
|
|
4770 |
role.store()
|
|
4771 |
resp = app.get(formdata.get_url(backoffice=True))
|
|
4772 |
assert resp.text.count('<li class="msg') == 3
|
|
4773 |
|
|
4774 |
|
4721 |
4775 |
def test_form_worklow_comments_on_same_status(pub):
|
4722 |
4776 |
pub.session_manager.session_class.wipe()
|
4723 |
4777 |
user = create_user(pub)
|