fix email to teachers (don't send to None)
[edumed.git] / wtem / management / commands / wtem_email_teachers.py
index 3aba80d..b2f1314 100644 (file)
@@ -1,14 +1,10 @@
 # -*- coding: utf-8 -*-
 
-import sys
-from optparse import make_option
-
-from django.core.management.base import BaseCommand, CommandError
-from django.conf import settings
-from django.core.mail import send_mail
+from django.core.management.base import BaseCommand
 from django.template.loader import render_to_string
 
 from contact.models import Contact
+from wtem.management.commands import send_mail
 
 
 class Command(BaseCommand):
@@ -16,16 +12,21 @@ class Command(BaseCommand):
         sent = 0
         failed = 0
 
-        query = Contact.objects.filter(form_tag = 'wtem').order_by('contact').distinct('contact')
+        contacts = Contact.objects.filter(form_tag='olimpiada').exclude(contact=None).order_by('contact')\
+            .distinct('contact')
         template_name = args[0]
+        emails = args[1:]
+        if emails:
+            contacts = contacts.filter(contact__in=emails)
         message = render_to_string('wtem/' + template_name + '.txt')
         subject = render_to_string('wtem/' + template_name + '_subject.txt')
         
-        answer = raw_input('Send the following to %d teachers with subject "%s"\n\n %s\n\n?' % \
-            (query.count(), subject.encode('utf8'), message.encode('utf8')))
+        answer = raw_input(
+            'Send the following to %d teachers with subject "%s"\n\n%s\n\n?' %
+            (contacts.count(), subject.encode('utf8'), message.encode('utf8')))
 
         if answer == 'yes':
-            for contact in query:
+            for contact in contacts:
                 try:
                     self.send_message(message, subject, contact.contact)
                 except Exception as e:
@@ -39,11 +40,5 @@ class Command(BaseCommand):
 
     def send_message(self, message, subject, email):
         self.stdout.write('>>> sending to %s' % email)
-        send_mail(
-            subject,
-            message,
-            getattr(settings, 'WTEM_CONTACT_EMAIL', 'no-reply@edukacjamedialna.edu.pl'),
-            [email],
-            fail_silently=False
-        )
+        send_mail(subject=subject, body=message, to=[email])