0001-general-store-computed-data-fields-after-backoffice-.patch
tests/backoffice_pages/test_submission.py | ||
---|---|---|
1661 | 1661 |
lateral_block_url = re.findall('data-async-url="(.*/lateral-block)"', resp.text)[0] |
1662 | 1662 |
partial_resp = app.get(lateral_block_url) |
1663 | 1663 |
assert partial_resp.text == '<div class="lateral-block">foo bar blah</div>' |
1664 | ||
1665 | ||
1666 |
def test_backoffice_submission_computed_field(pub): |
|
1667 |
user = create_user(pub) |
|
1668 | ||
1669 |
FormDef.wipe() |
|
1670 |
formdef = FormDef() |
|
1671 |
formdef.name = 'form title' |
|
1672 |
formdef.fields = [ |
|
1673 |
fields.ComputedField(id='1', label='computed', varname='computed', value_template='{{ "xxx" }}'), |
|
1674 |
] |
|
1675 |
formdef.backoffice_submission_roles = user.roles[:] |
|
1676 |
formdef.workflow_roles = {'_receiver': user.roles[0]} |
|
1677 |
formdef.store() |
|
1678 |
formdef.data_class().wipe() |
|
1679 | ||
1680 |
app = login(get_app(pub)) |
|
1681 |
resp = app.get('/backoffice/submission/form-title/') |
|
1682 |
resp = resp.forms[0].submit('submit') # -> validation |
|
1683 |
resp = resp.forms[0].submit('submit').follow() # -> submit |
|
1684 |
assert 'The form has been recorded' in resp.text |
|
1685 |
assert formdef.data_class().count() == 1 |
|
1686 |
formdata = formdef.data_class().select()[0] |
|
1687 |
assert formdata.data == {'1': 'xxx'} |
wcs/backoffice/submission.py | ||
---|---|---|
328 | 328 |
return redirect(get_publisher().get_backoffice_url() + '/submission/') |
329 | 329 |
filled.just_created() |
330 | 330 |
filled.data = self.formdef.get_data(form) |
331 |
magictoken = get_request().form['magictoken'] |
|
332 |
computed_values = get_session().get_by_magictoken('%s-computed' % magictoken, {}) |
|
333 |
filled.data.update(computed_values) |
|
331 | 334 |
filled.backoffice_submission = True |
332 | 335 |
if not filled.submission_context: |
333 | 336 |
filled.submission_context = {} |
334 |
- |