1 # -*- coding: utf-8 -*-
3 from optparse import make_option
5 from django.core.management.base import BaseCommand
6 from django.conf import settings
7 from wtem.management.commands import send_mail
8 from django.template.loader import render_to_string
10 from wtem.models import Submission, DEBUG_KEY
13 class Command(BaseCommand):
14 help = 'Sends personalized links to WTEM contestants'
15 args = '<email_address1>, <email_address2>, ...'
17 option_list = BaseCommand.option_list + (
23 help='Use all available submissions'),
29 help='Force sending key even if one was already sent')
32 def handle(self, *args, **options):
33 if len(args) or options['all']:
34 return self.send_keys(*args, **options)
35 self.stdout.write('No submissions selected')
37 def send_keys(self, *args, **options):
42 submissions = Submission.objects.all()
43 if not options['force']:
44 submissions = submissions.filter(key_sent=False)
46 submissions = submissions.filter(email__in=args)
48 for submission in submissions:
49 assert len(submission.key) == 30 or (settings.DEBUG and submission.key == DEBUG_KEY)
52 self.send_key(submission)
53 except Exception as e:
55 self.stdout.write('failed sending to: ' + submission.email + ' - ' + str(e))
57 submission.key_sent = True
60 self.stdout.write('key sent to: ' + submission.email)
62 self.stdout.write('sent: ' + str(sent))
64 def send_key(self, submission):
65 self.stdout.write('>>> sending to ' + submission.email)
67 subject="WTEM - Twój link do zadań",
68 body=render_to_string('wtem/email_key.txt', dict(submission=submission)),
69 to=[submission.email])