From 643a75996f4be63ecd2727ee9ca14820e6d9bd14 Mon Sep 17 00:00:00 2001 From: Thomas NOEL Date: Thu, 23 Aug 2018 09:19:06 +0200 Subject: [PATCH] workflows: don't send aggregation emails about deleted formdef or formdata (#25776) --- wcs/wf/aggregation_email.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/wcs/wf/aggregation_email.py b/wcs/wf/aggregation_email.py index 13a28a5d..633df12b 100644 --- a/wcs/wf/aggregation_email.py +++ b/wcs/wf/aggregation_email.py @@ -114,12 +114,19 @@ def send_aggregation_emails(publisher): if formdef_id in cache: formdef, formdata, workflow = cache[formdef_id] else: - formdef = FormDef.get(formdef_id) + try: + formdef = FormDef.get(formdef_id) + except KeyError: + # formdef has been deleted after AggregationEmail creation + continue formdata = formdef.data_class() workflow = formdef.workflow cache[formdef_id] = (formdef, formdata, workflow) - data = formdata.get(item.get('formdata')) + try: + data = formdata.get(item.get('formdata')) + except KeyError: + continue status = data.get_status() url = item.get('formurl') @@ -133,6 +140,9 @@ def send_aggregation_emails(publisher): body.append('- %sstatus (%s)' % (url, status.name)) + if not body: + continue + body = '\n'.join(body) mail_subject = _('New arrivals') -- 2.18.0