diff options
Diffstat (limited to 'apps/patchwork/utils.py')
-rw-r--r-- | apps/patchwork/utils.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/apps/patchwork/utils.py b/apps/patchwork/utils.py index 58edb19..5cb45e8 100644 --- a/apps/patchwork/utils.py +++ b/apps/patchwork/utils.py @@ -28,7 +28,7 @@ from django.core.mail import EmailMessage from django.db.models import Max from patchwork.forms import MultiplePatchForm from patchwork.models import Bundle, Project, BundlePatch, UserProfile, \ - PatchChangeNotification + PatchChangeNotification, EmailOptout def get_patch_ids(d, prefix = 'patch_id'): ids = [] @@ -169,6 +169,15 @@ def send_notifications(): for (recipient, notifications) in groups: notifications = list(notifications) + + def delete_notifications(): + PatchChangeNotification.objects.filter( + pk__in = notifications).delete() + + if EmailOptout.is_optout(recipient.email): + delete_notifications() + continue + context = { 'site': Site.objects.get_current(), 'person': recipient, @@ -191,6 +200,6 @@ def send_notifications(): errors.append((recipient, ex)) continue - PatchChangeNotification.objects.filter(pk__in = notifications).delete() + delete_notifications() return errors |