13 |
13 |
from wcs.data_sources import NamedDataSource
|
14 |
14 |
from wcs.formdef import FormDef
|
15 |
15 |
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
|
16 |
|
from wcs.workflows import Workflow
|
|
16 |
from wcs.workflows import JumpOnSubmitWorkflowStatusItem, Workflow
|
17 |
17 |
|
18 |
18 |
from ..utilities import clean_temporary_pub, create_temporary_pub, get_app, login
|
19 |
19 |
from .test_all import create_user
|
... | ... | |
1517 |
1517 |
assert 'Blah Title' not in resp.text
|
1518 |
1518 |
assert 'Blah Subtitle' not in resp.text
|
1519 |
1519 |
assert 'Blah Comment' not in resp.text
|
|
1520 |
|
|
1521 |
|
|
1522 |
def test_workflow_display_form_with_block_add(pub):
|
|
1523 |
user = create_user(pub)
|
|
1524 |
|
|
1525 |
block = BlockDef()
|
|
1526 |
block.name = 'foobar'
|
|
1527 |
block.fields = [
|
|
1528 |
fields.StringField(id='123', required=True, label='Test', type='string'),
|
|
1529 |
]
|
|
1530 |
block.store()
|
|
1531 |
|
|
1532 |
wf = Workflow.get_default_workflow()
|
|
1533 |
wf.id = '2'
|
|
1534 |
wf.store()
|
|
1535 |
wf = Workflow.get(wf.id)
|
|
1536 |
status = wf.get_status('new')
|
|
1537 |
status.items = []
|
|
1538 |
display_form = FormWorkflowStatusItem()
|
|
1539 |
display_form.id = '_display_form'
|
|
1540 |
display_form.by = ['_submitter']
|
|
1541 |
display_form.varname = 'blah'
|
|
1542 |
display_form.formdef = WorkflowFormFieldsFormDef(item=display_form)
|
|
1543 |
display_form.formdef.fields = [
|
|
1544 |
fields.StringField(id='1', label='Test', varname='str', type='string', required=True),
|
|
1545 |
fields.BlockField(id='2', label='Blocks', type='block:foobar', varname='data', max_items=3),
|
|
1546 |
]
|
|
1547 |
status.items.append(display_form)
|
|
1548 |
display_form.parent = status
|
|
1549 |
|
|
1550 |
jump = JumpOnSubmitWorkflowStatusItem()
|
|
1551 |
jump.id = '_jump'
|
|
1552 |
jump.status = 'accepted'
|
|
1553 |
status.items.append(jump)
|
|
1554 |
jump.parent = status
|
|
1555 |
|
|
1556 |
wf.store()
|
|
1557 |
|
|
1558 |
formdef = FormDef()
|
|
1559 |
formdef.name = 'form title'
|
|
1560 |
formdef.fields = []
|
|
1561 |
formdef.workflow_id = wf.id
|
|
1562 |
formdef.store()
|
|
1563 |
|
|
1564 |
formdata = formdef.data_class()()
|
|
1565 |
formdata.user_id = user.id
|
|
1566 |
formdata.just_created()
|
|
1567 |
formdata.status = 'wf-new'
|
|
1568 |
formdata.store()
|
|
1569 |
|
|
1570 |
resp = login(get_app(pub), username='foo', password='foo').get(formdata.get_url())
|
|
1571 |
resp.form['fblah_1'] = 'blah'
|
|
1572 |
resp.form['fblah_2$element0$f123'] = 'foo'
|
|
1573 |
resp = resp.form.submit('fblah_2$add_element')
|
|
1574 |
resp.form['fblah_2$element1$f123'] = 'bar'
|
|
1575 |
resp = resp.form.submit('submit')
|
|
1576 |
|
|
1577 |
assert formdef.data_class().get(formdata.id).workflow_data == {
|
|
1578 |
'blah_var_data': 'foobar, foobar',
|
|
1579 |
'blah_var_data_raw': {'data': [{'123': 'foo'}, {'123': 'bar'}], 'schema': {'123': 'string'}},
|
|
1580 |
'blah_var_str': 'blah',
|
|
1581 |
}
|