Uniquely merge BCC and Manager lists for sending notification email.
authorDiane Trout <diane@caltech.edu>
Tue, 20 Nov 2012 00:50:49 +0000 (16:50 -0800)
committerDiane Trout <diane@caltech.edu>
Tue, 20 Nov 2012 00:50:49 +0000 (16:50 -0800)
This uses a set to only send one email address one copy of a notification.

htsworkflow/frontend/experiments/tests.py
htsworkflow/frontend/experiments/views.py

index 8f535c824bc26cdf87089a50331269104236e9b7..0f241476e78ff7938145337bb64409accfa69a04 100644 (file)
@@ -561,8 +561,10 @@ class TestEmailNotify(TestCase):
         response = self.client.get('/experiments/started/153/', {'send':'1','bcc':'on'})
         self.assertEqual(response.status_code, 200)
         self.assertEqual(len(mail.outbox), 4)
+        bcc = set(settings.NOTIFICATION_BCC).intersect(set(settings.MANAGERS))
         for m in mail.outbox:
             self.assertTrue(len(m.body) > 0)
+            self.assertEqual(m.bcc, bcc)
 
     def test_email_navigation(self):
         """
index 5d4283da67288868b1e2a0bd0fd26bcfc78a3435..28a355f97271f65ba80d0e18502a03f55b93f652 100644 (file)
@@ -103,9 +103,15 @@ def startedEmail(request, pk):
 
         if send:
             email = EmailMessage(subject, body, sender, to=[user_email])
+            notified = set()
             if bcc_managers:
-                email.bcc = settings.MANAGERS
-            email.bcc = settings.NOTIFICATION_BCC
+                for manager in settings.MANAGERS:
+                    if len(manager) > 0:
+                        notified.add(manager)
+            for user in settings.NOTIFICATION_BCC:
+                if len(user) > 0:
+                    notified.add(user)
+            email.bcc = list(notified)
             email.send()
 
         emails.append((user_email, subject, body, sending))