aboutsummaryrefslogtreecommitdiff
path: root/management
diff options
context:
space:
mode:
Diffstat (limited to 'management')
-rw-r--r--management/commands/sendmails.py14
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."))