Projet

Général

Profil

0001-general-store-computed-data-fields-after-backoffice-.patch

Frédéric Péters, 16 juin 2021 20:26

Télécharger (2,53 ko)

Voir les différences:

Subject: [PATCH] general: store computed data fields after backoffice
 submission (#54928)

 tests/backoffice_pages/test_submission.py | 24 +++++++++++++++++++++++
 wcs/backoffice/submission.py              |  3 +++
 2 files changed, 27 insertions(+)
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
-