9 |
9 |
from quixote import cleanup
|
10 |
10 |
from wcs import publisher
|
11 |
11 |
|
12 |
|
from wcs.workflows import (Workflow, CommentableWorkflowStatusItem,
|
13 |
|
WorkflowCriticalityLevel, WorkflowBackofficeFieldsFormDef,
|
14 |
|
SendmailWorkflowStatusItem, SendSMSWorkflowStatusItem,
|
15 |
|
WorkflowImportError)
|
|
12 |
from wcs.formdef import FormDef
|
|
13 |
from wcs.workflows import (
|
|
14 |
Workflow, CommentableWorkflowStatusItem, WorkflowCriticalityLevel,
|
|
15 |
WorkflowBackofficeFieldsFormDef, SendmailWorkflowStatusItem,
|
|
16 |
SendSMSWorkflowStatusItem, WorkflowImportError, ChoiceWorkflowStatusItem,
|
|
17 |
JumpOnSubmitWorkflowStatusItem)
|
16 |
18 |
from wcs.wf.wscall import WebserviceCallStatusItem
|
17 |
19 |
from wcs.wf.dispatch import DispatchWorkflowStatusItem
|
18 |
20 |
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem
|
19 |
21 |
from wcs.wf.profile import UpdateUserProfileStatusItem
|
20 |
22 |
from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem
|
|
23 |
from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem
|
|
24 |
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, Mapping
|
21 |
25 |
from wcs.roles import Role
|
22 |
|
from wcs.fields import StringField
|
|
26 |
from wcs.fields import StringField, FileField
|
23 |
27 |
|
24 |
28 |
from wcs.qommon.misc import indent_xml as indent
|
25 |
29 |
|
... | ... | |
681 |
685 |
|
682 |
686 |
sendmail.condition = {'type': 'python', 'value': 'True'}
|
683 |
687 |
wf2 = assert_import_export_works(wf)
|
|
688 |
|
|
689 |
|
|
690 |
def test_create_formdata(pub):
|
|
691 |
target_formdef = FormDef()
|
|
692 |
target_formdef.name = 'target form'
|
|
693 |
target_formdef.fields = [
|
|
694 |
StringField(id='0', label='string', varname='foo_string'),
|
|
695 |
FileField(id='1', label='file', type='file', varname='foo_file'),
|
|
696 |
]
|
|
697 |
target_formdef.store()
|
|
698 |
|
|
699 |
wf = Workflow(name='create-formdata')
|
|
700 |
|
|
701 |
st1 = wf.add_status('New')
|
|
702 |
st2 = wf.add_status('Resubmit')
|
|
703 |
|
|
704 |
jump = ChoiceWorkflowStatusItem()
|
|
705 |
jump.id = '_resubmit'
|
|
706 |
jump.label = 'Resubmit'
|
|
707 |
jump.by = ['_submitter']
|
|
708 |
jump.status = st2.id
|
|
709 |
jump.parent = st1
|
|
710 |
st1.items.append(jump)
|
|
711 |
|
|
712 |
create_formdata = CreateFormdataWorkflowStatusItem()
|
|
713 |
create_formdata.id = '_create_formdata'
|
|
714 |
create_formdata.formdef_slug = target_formdef.url_name
|
|
715 |
create_formdata.mappings = [
|
|
716 |
Mapping(varname='foo_string', expression='=form_var_toto_string'),
|
|
717 |
Mapping(varname='foo_file', expression='=form_var_toto_file_raw'),
|
|
718 |
]
|
|
719 |
create_formdata.parent = st2
|
|
720 |
st2.items.append(create_formdata)
|
|
721 |
|
|
722 |
redirect = RedirectToUrlWorkflowStatusItem()
|
|
723 |
redirect.id = '_redirect'
|
|
724 |
redirect.url = '{{ linked.url }}'
|
|
725 |
redirect.parent = st2
|
|
726 |
st2.items.append(redirect)
|
|
727 |
|
|
728 |
jump = JumpOnSubmitWorkflowStatusItem()
|
|
729 |
jump.id = '_jump'
|
|
730 |
jump.status = st1.id
|
|
731 |
jump.parent = st2
|
|
732 |
st2.items.append(jump)
|
|
733 |
|
|
734 |
wf.store()
|
|
735 |
|
|
736 |
wf2 = assert_import_export_works(wf, include_id=True)
|
|
737 |
assert isinstance(wf2.get_status('2').items[0], CreateFormdataWorkflowStatusItem)
|
|
738 |
assert wf2.get_status('2').items[0] == wf.get_status('2').items[0]
|
684 |
|
-
|