diff --git a/aleksis/core/data_checks.py b/aleksis/core/data_checks.py index 9f2a0ac07337d3e966c36ad26d85f43d88420c36..1f2e2c5ef965f17ae9c4a44677e111706b14218f 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 9f3944918c616c1371d1f17fc18084e52e6c2487..a8cbe1ef56deee73e82c5d0a77983078de186dac 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")