diff options
Diffstat (limited to 'management')
| -rw-r--r-- | management/commands/sendmails.py | 14 | 
1 files changed, 11 insertions, 3 deletions
| diff --git a/management/commands/sendmails.py b/management/commands/sendmails.py index 89c5c1b..1669bcc 100644 --- a/management/commands/sendmails.py +++ b/management/commands/sendmails.py @@ -1,7 +1,8 @@  from django.core.management.base import BaseCommand, CommandError -from django.core.mail import send_mail +from django.core.mail import send_mass_mail  from django.utils import timezone  from django.template import Context, loader +from django.conf import settings  from edt.models import Group, Subscription, Course  from edt.utils import get_week, group_courses @@ -21,6 +22,9 @@ class Command(BaseCommand):          subscriptions = Subscription.objects.filter(active=True)          content = {} +        mails = [] + +        print("Generating messages...")          for subscription in subscriptions:              if subscription.group.id not in content:                  courses = Course.objects.get_courses_for_group(subscription.group, begin__gte=start, begin__lt=end) @@ -31,7 +35,11 @@ class Command(BaseCommand):                  content[subscription.group.id] = template.render(context)              footer = loader.get_template("mail_footer.txt") -            context = Context({"token": subscription.token}) +            context = Context({"admins": settings.ADMINS, "token": subscription.token})              mail_content = content[subscription.group.id] + footer.render(context) -            # send content +            mails.append(("{0} - {1} - Semaine {2}".format(subscription.group.timetable.name, subscription.group.name, week), mail_content, settings.DEFAULT_FROM_EMAIL, [subscription.email],)) + +        print("Sending mails...") +        send_mass_mail(mails) +        self.stdout.write(self.style.SUCCESS("Done.")) | 
