X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/53907d17526cecf92207417e051527c00bcd2426..3ca90d4aed87ed8b39c4984a290de6a3b898a7bd:/wtem/management/commands/wtem_send_keys.py diff --git a/wtem/management/commands/wtem_send_keys.py b/wtem/management/commands/wtem_send_keys.py index 82e7469..8e26624 100644 --- a/wtem/management/commands/wtem_send_keys.py +++ b/wtem/management/commands/wtem_send_keys.py @@ -1,7 +1,11 @@ +# -*- coding: utf-8 -*- + from optparse import make_option -from django.core.management.base import BaseCommand, CommandError +from django.core.management.base import BaseCommand from django.conf import settings +from wtem.management.commands import send_mail +from django.template.loader import render_to_string from wtem.models import Submission, DEBUG_KEY @@ -11,12 +15,14 @@ class Command(BaseCommand): args = ', , ...' option_list = BaseCommand.option_list + ( - make_option('--all', + make_option( + '--all', action='store_true', dest='all', default=False, help='Use all available submissions'), - make_option('--force', + make_option( + '--force', action='store_true', dest='force', default=False, @@ -33,20 +39,20 @@ class Command(BaseCommand): skipped = 0 failed = 0 - query = Submission.objects.all() + submissions = Submission.objects.all() if not options['force']: - query = query.filter(key_sent = False) + submissions = submissions.filter(key_sent=False) if len(args): - query = query.filter(email__in = args) + submissions = submissions.filter(email__in=args) - for submission in query.all(): + for submission in submissions: assert len(submission.key) == 30 or (settings.DEBUG and submission.key == DEBUG_KEY) try: self.send_key(submission) - except: + except Exception as e: failed += 1 - self.stdout.write('failed sending to: ' + submission.email) + self.stdout.write('failed sending to: ' + submission.email + ' - ' + str(e)) else: submission.key_sent = True submission.save() @@ -56,4 +62,8 @@ class Command(BaseCommand): self.stdout.write('sent: ' + str(sent)) def send_key(self, submission): - self.stdout.write('>>> sending to ' + submission.email) \ No newline at end of file + self.stdout.write('>>> sending to ' + submission.email) + send_mail( + subject="Olimpiada Cyfrowa - Twój link do egzaminu", + body=render_to_string('wtem/email_key.txt', dict(submission=submission)), + to=[submission.email])