backoffice: add prefill using user selected in sidebar (#48983)
This commit is contained in:
parent
7b7c4a54ea
commit
93a9a55847
|
@ -1297,6 +1297,7 @@ def test_backoffice_submission_user_selection(pub):
|
|||
for i in range(10):
|
||||
random_user = pub.user_class()
|
||||
random_user.name = 'random user %s' % i
|
||||
random_user.email = 'test%s@invalid' % i
|
||||
random_user.store()
|
||||
|
||||
FormDef.wipe()
|
||||
|
@ -1355,3 +1356,22 @@ def test_backoffice_submission_user_selection(pub):
|
|||
formdata_no = resp.location.split('/')[-2]
|
||||
data_class = formdef.data_class()
|
||||
assert data_class.get(formdata_no).user.name == random_user.name
|
||||
|
||||
# check prefill
|
||||
formdef.fields[-1].prefill = {'type': 'user', 'value': 'email'}
|
||||
formdef.store()
|
||||
|
||||
resp = app.get('/backoffice/submission/')
|
||||
resp = resp.click(formdef.name)
|
||||
|
||||
assert resp.form['submission_channel'].attrs['type'] == 'hidden'
|
||||
assert resp.pyquery('.submit-user-selection')
|
||||
resp.form['user_id'] = str(random_user.id) # happens via javascript
|
||||
resp.form['f1'] = 'test submission'
|
||||
resp = resp.form.submit('submit') # -> 2nd page
|
||||
assert not resp.pyquery('.submit-user-selection')
|
||||
assert '>%s</p>' % random_user.name in resp
|
||||
assert resp.form['f3'].value == random_user.email
|
||||
resp = resp.form.submit('submit') # -> validation page
|
||||
assert 'Check values then click submit.' in resp
|
||||
assert '<p>%s</p>' % random_user.name in resp
|
||||
|
|
|
@ -140,6 +140,12 @@ class FormFillPage(PublicFormFillPage):
|
|||
self.selected_user_id = get_request().form.get('user_id')
|
||||
return super(FormFillPage, self)._q_index(*args, **kwargs)
|
||||
|
||||
def get_transient_formdata(self, magictoken=Ellipsis):
|
||||
formdata = super().get_transient_formdata(magictoken=magictoken)
|
||||
if self.selected_user_id:
|
||||
formdata.user_id = self.selected_user_id
|
||||
return formdata
|
||||
|
||||
def html_top(self, *args, **kwargs):
|
||||
return html_top('submission', *args, **kwargs)
|
||||
|
||||
|
|
Loading…
Reference in New Issue