5791 |
5791 |
assert formdata.data['2'] == 'plop'
|
5792 |
5792 |
assert formdata.data['3'] == 'a'
|
5793 |
5793 |
assert formdata.data['3_display'] == 'b'
|
|
5794 |
|
|
5795 |
def test_form_edit_and_backoffice_field_change(pub):
|
|
5796 |
create_user(pub)
|
|
5797 |
|
|
5798 |
formdef = create_formdef()
|
|
5799 |
formdef.fields = [fields.PageField(id='0', label='1st page', type='page'),
|
|
5800 |
fields.StringField(id='1', label='string', varname='foo'),
|
|
5801 |
fields.PageField(id='2', label='2nd page', type='page')
|
|
5802 |
]
|
|
5803 |
formdef.store()
|
|
5804 |
formdef.data_class().wipe()
|
|
5805 |
|
|
5806 |
Workflow.wipe()
|
|
5807 |
workflow = Workflow(name='test')
|
|
5808 |
workflow.backoffice_fields_formdef = WorkflowBackofficeFieldsFormDef(workflow)
|
|
5809 |
workflow.backoffice_fields_formdef.fields = [
|
|
5810 |
fields.StringField(id='bo1', label='bo field 1', type='string',
|
|
5811 |
varname='plop'),
|
|
5812 |
]
|
|
5813 |
st1 = workflow.add_status('Status1', 'st1')
|
|
5814 |
setbo = SetBackofficeFieldsWorkflowStatusItem()
|
|
5815 |
setbo.parent = st1
|
|
5816 |
setbo.fields = [{'field_id': 'bo1', 'value': '=form_var_foo'}]
|
|
5817 |
setbo2 = SetBackofficeFieldsWorkflowStatusItem()
|
|
5818 |
setbo2.parent = st1
|
|
5819 |
setbo2.fields = [{'field_id': 'bo1', 'value': '="foo" + form_var_plop'}]
|
|
5820 |
jump = JumpWorkflowStatusItem()
|
|
5821 |
jump.status = 'st2'
|
|
5822 |
st1.items = [setbo, setbo2, jump]
|
|
5823 |
|
|
5824 |
st2 = workflow.add_status('Status2', 'st2')
|
|
5825 |
|
|
5826 |
editable = EditableWorkflowStatusItem()
|
|
5827 |
editable.id = '_editable'
|
|
5828 |
editable.by = ['_submitter']
|
|
5829 |
st2.items.append(editable)
|
|
5830 |
editable.parent = st2
|
|
5831 |
editable.status = st1.id
|
|
5832 |
workflow.store()
|
|
5833 |
|
|
5834 |
formdef.workflow_id = workflow.id
|
|
5835 |
formdef.store()
|
|
5836 |
|
|
5837 |
formdef.data_class().wipe()
|
|
5838 |
|
|
5839 |
resp = login(get_app(pub), username='foo', password='foo').get('/test/')
|
|
5840 |
resp.form['f1'] = 'bar'
|
|
5841 |
resp = resp.form.submit('submit') # -> page 2
|
|
5842 |
resp = resp.form.submit('submit') # -> validation
|
|
5843 |
resp = resp.form.submit('submit').follow() # -> submitted
|
|
5844 |
assert 'The form has been recorded' in resp.body
|
|
5845 |
|
|
5846 |
data_id = formdef.data_class().select()[0].id
|
|
5847 |
assert formdef.data_class().get(data_id).data['bo1'] == 'foobar'
|
|
5848 |
|
|
5849 |
app = login(get_app(pub), username='foo', password='foo')
|
|
5850 |
resp = app.get('/test/%s/' % data_id)
|
|
5851 |
assert 'button_editable-button' in resp.body
|
|
5852 |
|
|
5853 |
resp = resp.form.submit('button_editable')
|
|
5854 |
resp = resp.follow()
|
|
5855 |
assert resp.form['f1'].value == 'bar'
|
|
5856 |
resp.form['f1'].value = 'baz'
|
|
5857 |
resp = resp.form.submit('submit') # -> page 2
|
|
5858 |
resp = resp.form.submit('submit').follow() # -> saved
|
|
5859 |
|
|
5860 |
assert formdef.data_class().get(data_id).data['bo1'] == 'foobaz'
|