fix for when there are no students
authorJan Szejko <janek37@gmail.com>
Wed, 9 Nov 2016 14:47:22 +0000 (15:47 +0100)
committerJan Szejko <janek37@gmail.com>
Wed, 9 Nov 2016 14:47:22 +0000 (15:47 +0100)
edumed/contact_forms.py

index 3c222de..7e7faca 100644 (file)
@@ -276,7 +276,8 @@ class OlimpiadaForm(ContactForm):
     @staticmethod
     def get_extract_fields(contact, extract_type_slug):
         fields = contact.body.keys()
-        fields.remove('student')
+        if 'student' in fields:
+            fields.remove('student')
         fields.extend(['contact', 'student_first_name', 'student_last_name', 'student_email'])
         return fields
 
@@ -293,12 +294,13 @@ class OlimpiadaForm(ContactForm):
             toret[0][field_name] = val
 
         current = toret[0]
-        for student in contact.body['student']:
-            for attr in ('first_name', 'last_name', 'email'):
-                current['student_' + attr] = student[attr]
-            if current not in toret:
-                toret.append(current)
-            current = {}
+        if 'student' in contact.body:
+            for student in contact.body['student']:
+                for attr in ('first_name', 'last_name', 'email'):
+                    current['student_' + attr] = student[attr]
+                if current not in toret:
+                    toret.append(current)
+                current = {}
         return toret
 
     def save(self, request, formsets=None):