From b26de0fca265cfaba7a4e7bdfafa67df7985609e Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Mon, 23 Jan 2017 13:24:40 +0100 Subject: Implémentation initiale de l'envoi des mails aux abonnés --- management/commands/sendmails.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 management/commands/sendmails.py (limited to 'management') diff --git a/management/commands/sendmails.py b/management/commands/sendmails.py new file mode 100644 index 0000000..4e3b663 --- /dev/null +++ b/management/commands/sendmails.py @@ -0,0 +1,33 @@ +from django.core.management.base import BaseCommand, CommandError +from django.core.mail import send_mail +from django.utils import timezone +from django.template import Context, loader + +from edt.models import Group, Subscription, Course +from edt.utils import get_week, group_courses + +import datetime + + +class Command(BaseCommand): + help = "Sends emails to subscribed users" + + def handle(self, *args, **options): + year, week, day = timezone.now().isocalendar() + if day >= 6: + year, week, _ = (timezone.now() + datetime.timedelta(weeks=1)).isocalendar() + + start, end = get_week(year, week) + + subscriptions = Subscription.objects.filter(active=True) + content = {} + 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) + grouped_courses = group_courses(courses) + + template = loader.get_template("timetable_email.txt") + context = Context({"subscription": subscription, "courses": grouped_courses, "week": week}) + content[subscription.group.id] = template.render(context) + + # send content -- cgit v1.2.1