17 |
17 |
from wcs.formdef import FormDef
|
18 |
18 |
from wcs.qommon.form import UploadedFile
|
19 |
19 |
from wcs.qommon.misc import ConnectionError
|
|
20 |
from wcs.wf.create_formdata import Mapping
|
20 |
21 |
from wcs.wf.export_to_model import transform_to_pdf
|
21 |
22 |
from wcs.wf.form import WorkflowFormFieldsFormDef
|
22 |
23 |
from wcs.workflows import Workflow, WorkflowBackofficeFieldsFormDef
|
... | ... | |
1666 |
1667 |
'to-all.txt',
|
1667 |
1668 |
'to-role2.txt',
|
1668 |
1669 |
]
|
|
1670 |
|
|
1671 |
|
|
1672 |
def test_create_formdata_show_link_in_history(pub):
|
|
1673 |
user = create_user(pub)
|
|
1674 |
FormDef.wipe()
|
|
1675 |
pub.tracking_code_class.wipe()
|
|
1676 |
|
|
1677 |
target_formdef = FormDef()
|
|
1678 |
target_formdef.name = 'target-form'
|
|
1679 |
target_formdef.fields = [
|
|
1680 |
fields.StringField(id='0', label='string', varname='foo_string'),
|
|
1681 |
]
|
|
1682 |
target_formdef.store()
|
|
1683 |
target_formdef.data_class().wipe()
|
|
1684 |
|
|
1685 |
wf = Workflow(name='create-formdata')
|
|
1686 |
wf.possible_status = Workflow.get_default_workflow().possible_status[:]
|
|
1687 |
create = wf.possible_status[1].add_action('create_formdata', id='_create', prepend=True)
|
|
1688 |
create.label = 'create a new linked form'
|
|
1689 |
create.varname = 'resubmitted'
|
|
1690 |
create.mappings = [
|
|
1691 |
Mapping(field_id='0', expression='="coincoin"'),
|
|
1692 |
]
|
|
1693 |
wf.store()
|
|
1694 |
|
|
1695 |
source_formdef = FormDef()
|
|
1696 |
source_formdef.name = 'source-form'
|
|
1697 |
source_formdef.fields = []
|
|
1698 |
source_formdef.workflow_id = wf.id
|
|
1699 |
source_formdef.enable_tracking_codes = True
|
|
1700 |
source_formdef.store()
|
|
1701 |
|
|
1702 |
create.formdef_slug = target_formdef.url_name
|
|
1703 |
create.attach_to_history = True
|
|
1704 |
wf.store()
|
|
1705 |
|
|
1706 |
app = login(get_app(pub), username='foo', password='foo')
|
|
1707 |
resp = app.get('/source-form/')
|
|
1708 |
resp = resp.forms[0].submit('submit')
|
|
1709 |
assert 'Check values then click submit.' in resp.text
|
|
1710 |
resp = resp.forms[0].submit('submit')
|
|
1711 |
assert resp.status_int == 302
|
|
1712 |
resp = resp.follow()
|
|
1713 |
assert 'The form has been recorded' in resp.text
|
|
1714 |
|
|
1715 |
formdata = source_formdef.data_class().select()[0]
|
|
1716 |
|
|
1717 |
# logged access: show link to created formdata
|
|
1718 |
resp = app.get('/source-form/%s/' % formdata.id)
|
|
1719 |
assert 'The form has been recorded on' in resp.text
|
|
1720 |
assert 'New form "target-form" created' in resp.text
|
|
1721 |
|
|
1722 |
# anonymous access via tracking code: no link
|
|
1723 |
app = get_app(pub)
|
|
1724 |
resp = app.get('/code/%s/load' % formdata.tracking_code)
|
|
1725 |
resp = resp.follow()
|
|
1726 |
assert 'The form has been recorded on' in resp.text
|
|
1727 |
assert 'New form "target-form" created' not in resp.text
|