# -*- coding: utf-8 -*-
from django.core.management.base import BaseCommand
-from contact.models import Contact
-from wtem.models import Submission
+from wtem.models import Submission, Confirmation
class Command(BaseCommand):
- def handle(self, *ids, **options):
+ def handle(self, **options):
new = 0
skipped = 0
- query = Contact.objects.filter(form_tag='olimpiada').order_by('-created_at')
- if ids:
- query = query.filter(pk__in=ids)
-
- for wtem_contact in query:
- for student in wtem_contact.body['student']:
- if not Submission.objects.filter(email=student['email']).exists():
- args = dict()
- for attr in ['first_name', 'last_name', 'email']:
- args[attr] = student[attr]
- args['contact'] = wtem_contact
- Submission.create(**args)
- new += 1
- else:
- self.stdout.write('skipping ' + student['email'] + ': already exists.')
- skipped += 1
+ for confirmation in Confirmation.objects.all():
+ if not Submission.objects.filter(email=confirmation.email).exists():
+ args = {}
+ for attr in ['first_name', 'last_name', 'email', 'contact']:
+ args[attr] = getattr(confirmation, attr)
+ Submission.create(**args)
+ new += 1
+ else:
+ self.stdout.write('skipping ' + confirmation.email + ': already exists.')
+ skipped += 1
self.stdout.write('New: ' + str(new) + ', skipped: ' + str(skipped))
def send_keys(self, *args, **options):
sent = 0
- skipped = 0
failed = 0
submissions = Submission.objects.all()
self.send_key(submission)
except Exception as e:
failed += 1
- self.stdout.write('failed sending to: ' + submission.email + ' - ' + str(e))
+ self.stdout.write('failed sending to: ' + submission.email + ' - ' + repr(e))
else:
submission.key_sent = True
submission.save()