misc: fix submitter email lookup in case of unfilled block data (#53254)

This commit is contained in:
Frédéric Péters 2021-04-19 14:59:24 +02:00
parent d1bd081f58
commit 5b45fe4681
2 changed files with 5 additions and 1 deletions

View File

@ -228,6 +228,7 @@ def test_get_submitter(pub, formdef):
formdef.fields = [
fields.StringField(id='0', label='email', varname='foo', prefill={'type': 'user', 'value': 'email'}),
fields.BlockField(id='1', label='test', type='block:foobar', max_items=3, varname='block'),
fields.StringField(id='2', label='other'),
]
formdef.store()
@ -263,6 +264,9 @@ def test_get_submitter(pub, formdef):
formdata.data = {'1': {}}
assert formdef.get_submitter_email(formdata) is None
formdata.data = {'2': 'other'}
assert formdef.get_submitter_email(formdata) is None
formdata.data = {
'0': 'foo@localhost',
'1': {

View File

@ -1352,7 +1352,7 @@ class FormDef(StorableObject):
if not is_user_field(subfield):
continue
v = formdata.data.get(field.id)
if not v.get('data'):
if not (v and v.get('data')):
continue
for data in v.get('data'):
w = data.get(subfield.id)