From 5b45fe4681a9b7fd21b0084c3a8387ed19cadcc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Mon, 19 Apr 2021 14:59:24 +0200 Subject: [PATCH] misc: fix submitter email lookup in case of unfilled block data (#53254) --- tests/test_formdata.py | 4 ++++ wcs/formdef.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/test_formdata.py b/tests/test_formdata.py index 0bb4ed684..7189b45a3 100644 --- a/tests/test_formdata.py +++ b/tests/test_formdata.py @@ -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': { diff --git a/wcs/formdef.py b/wcs/formdef.py index 3658e94fb..b45cceacd 100644 --- a/wcs/formdef.py +++ b/wcs/formdef.py @@ -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)