From 4f1026f8fcdacdbfc7aacb0879458b772f618a79 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Sun, 27 Dec 2020 17:37:12 +0100 Subject: [PATCH] Allow sending data check notifications emails to groups --- aleksis/core/data_checks.py | 13 ++++++++++--- aleksis/core/preferences.py | 13 ++++++++++++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/aleksis/core/data_checks.py b/aleksis/core/data_checks.py index 9f2a0ac07..1f2e2c5ef 100644 --- a/aleksis/core/data_checks.py +++ b/aleksis/core/data_checks.py @@ -216,12 +216,19 @@ def send_emails_for_data_checks(): (DATA_CHECK_REGISTRY.data_checks_by_name[result["check"]], result["count"]) ) + recipient_list = [ + p.mail_sender + for p in get_site_preferences()["general__data_checks_recipients"] + if p.email + ] + + for group in get_site_preferences()["general__data_checks_recipient_groups"]: + recipient_list += [p.mail_sender for p in group.announcement_recipients if p.email] + send_templated_mail( template_name="data_checks", from_email=get_site_preferences()["mail__address"], - recipient_list=[ - p.email for p in get_site_preferences()["general__data_checks_recipients"] - ], + recipient_list=recipient_list, context={"results": results_with_checks}, ) diff --git a/aleksis/core/preferences.py b/aleksis/core/preferences.py index 9f3944918..a8cbe1ef5 100644 --- a/aleksis/core/preferences.py +++ b/aleksis/core/preferences.py @@ -13,7 +13,7 @@ from dynamic_preferences.types import ( StringPreference, ) -from .models import Person +from .models import Group, Person from .registries import person_preferences_registry, site_preferences_registry from .util.notifications import get_notification_choices_lazy @@ -232,3 +232,14 @@ class DataChecksEmailsRecipients(ModelMultipleChoicePreference): default = [] model = Person verbose_name = _("Email recipients for data checks problem emails") + + +@site_preferences_registry.register +class DataChecksEmailsRecipientGroups(ModelMultipleChoicePreference): + """Email recipient groups for data check problem emails.""" + + section = general + name = "data_checks_recipient_groups" + default = [] + model = Group + verbose_name = _("Email recipient groups for data checks problem emails") -- GitLab