hide banner
[edumed.git] / wtem / management / commands / wtem_generate_keys.py
index 239fe6b..f49c8b7 100644 (file)
@@ -1,19 +1,23 @@
-from django.core.management.base import BaseCommand, CommandError
+# -*- coding: utf-8 -*-
+from django.core.management.base import BaseCommand
 
 from contact.models import Contact
 from wtem.models import Submission
 
 
 class Command(BaseCommand):
 
 from contact.models import Contact
 from wtem.models import Submission
 
 
 class Command(BaseCommand):
-    help = 'Sends personalized links to WTEM contestants'
 
 
-    def handle(self, *args, **options):
+    def handle(self, *ids, **options):
         new = 0
         skipped = 0
 
         new = 0
         skipped = 0
 
-        for wtem_contact in Contact.objects.filter(form_tag = 'wtem'):
+        query = Contact.objects.filter(form_tag='wtem').order_by('-created_at')
+        if ids:
+            query = query.filter(pk__in=ids)
+
+        for wtem_contact in query:
             for student in wtem_contact.body['student']:
             for student in wtem_contact.body['student']:
-                if not Submission.objects.filter(email = student['email']).exists():
+                if not Submission.objects.filter(email=student['email']).exists():
                     args = dict()
                     for attr in ['first_name', 'last_name', 'email']:
                         args[attr] = student[attr]
                     args = dict()
                     for attr in ['first_name', 'last_name', 'email']:
                         args[attr] = student[attr]
@@ -21,6 +25,7 @@ class Command(BaseCommand):
                     Submission.create(**args)
                     new += 1
                 else:
                     Submission.create(**args)
                     new += 1
                 else:
+                    self.stdout.write('skipping ' + student['email'] + ': already exists.')
                     skipped += 1
 
         self.stdout.write('New: ' + str(new) + ', skipped: ' + str(skipped))
                     skipped += 1
 
         self.stdout.write('New: ' + str(new) + ', skipped: ' + str(skipped))