summaryrefslogtreecommitdiffstats
path: root/apps/patchwork/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'apps/patchwork/utils.py')
-rw-r--r--apps/patchwork/utils.py13
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