+# -*- 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
args = '<email_address1>, <email_address2>, ...'
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,
def send_keys(self, *args, **options):
sent = 0
- 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 + ' - ' + repr(e))
else:
submission.key_sent = True
submission.save()
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 zadań I etapu",
+ body=render_to_string('wtem/email_key.txt', dict(submission=submission)),
+ to=[submission.email])