fix contact admin?
[edumed.git] / edumed / contact_forms.py
index 87fc591..8358907 100644 (file)
@@ -10,6 +10,7 @@ from django.core.validators import validate_email
 from django.template.loader import render_to_string
 from django.utils.translation import ugettext_lazy as _
 
 from django.template.loader import render_to_string
 from django.utils.translation import ugettext_lazy as _
 
+from wtem.models import Confirmation
 
 WOJEWODZTWA = (
     u'dolnośląskie',
 
 WOJEWODZTWA = (
     u'dolnośląskie',
@@ -227,7 +228,7 @@ class WTEMForm(ContactForm):
                 except ValidationError:
                     pass
                 else:
                 except ValidationError:
                     pass
                 else:
-                    send_mail(mail_subject, mail_body, 'edukacjamedialna@nowoczesnapolska.org.pl', [email],
+                    send_mail(mail_subject, mail_body, 'olimpiada@nowoczesnapolska.org.pl', [email],
                               fail_silently=True)
 
         return contact
                               fail_silently=True)
 
         return contact
@@ -254,6 +255,7 @@ class OlimpiadaForm(ContactForm):
     przewodniczacy = forms.CharField(label=u'Imię i nazwisko Przewodniczącego/Przewodniczącej', max_length=128)
     school = forms.CharField(label=u'Nazwa szkoły', max_length=255)
     school_address = forms.CharField(label=u'Adres szkoły', widget=forms.Textarea, max_length=1000)
     przewodniczacy = forms.CharField(label=u'Imię i nazwisko Przewodniczącego/Przewodniczącej', max_length=128)
     school = forms.CharField(label=u'Nazwa szkoły', max_length=255)
     school_address = forms.CharField(label=u'Adres szkoły', widget=forms.Textarea, max_length=1000)
+    school_wojewodztwo = forms.ChoiceField(label=u'Województwo', choices=WOJEWODZTWO_CHOICES)
     school_email = forms.EmailField(label=u'Adres e-mail szkoły', max_length=128)
     school_phone = forms.CharField(label=u'Numer telefonu szkoły', max_length=32)
     school_www = forms.URLField(label=u'Strona WWW szkoły', max_length=255, required=False)
     school_email = forms.EmailField(label=u'Adres e-mail szkoły', max_length=128)
     school_phone = forms.CharField(label=u'Numer telefonu szkoły', max_length=32)
     school_www = forms.URLField(label=u'Strona WWW szkoły', max_length=255, required=False)
@@ -276,7 +278,8 @@ class OlimpiadaForm(ContactForm):
     @staticmethod
     def get_extract_fields(contact, extract_type_slug):
         fields = contact.body.keys()
     @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
 
         fields.extend(['contact', 'student_first_name', 'student_last_name', 'student_email'])
         return fields
 
@@ -293,31 +296,32 @@ class OlimpiadaForm(ContactForm):
             toret[0][field_name] = val
 
         current = toret[0]
             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):
         contact = super(OlimpiadaForm, self).save(request, formsets)
 
         return toret
 
     def save(self, request, formsets=None):
         contact = super(OlimpiadaForm, self).save(request, formsets)
 
-        mail_subject = render_to_string('contact/olimpiada/student_mail_subject.html').strip()
-        mail_body = render_to_string('contact/olimpiada/student_mail_body.html')
         for formset in formsets or []:
             if formset.prefix == 'student':
                 for f in formset.forms:
                     email = f.cleaned_data.get('email', None)
         for formset in formsets or []:
             if formset.prefix == 'student':
                 for f in formset.forms:
                     email = f.cleaned_data.get('email', None)
-                    try:
-                        validate_email(email)
-                    except ValidationError:
-                        pass
-                    else:
-                        send_mail(mail_subject, mail_body, 'edukacjamedialna@nowoczesnapolska.org.pl', [email],
-                                  fail_silently=True)
-
+                    if email:
+                        try:
+                            Confirmation.objects.get(email=email)
+                        except Confirmation.DoesNotExist:
+                            first_name = f.cleaned_data.get('first_name', None)
+                            last_name = f.cleaned_data.get('last_name', None)
+                            if first_name and last_name:
+                                confirmation = Confirmation.create(
+                                    first_name=first_name, last_name=last_name, email=email, contact=contact)
+                                confirmation.send_mail()
         return contact
 
 
         return contact
 
 
@@ -533,6 +537,7 @@ class CybernauciForm(ContactForm):
 
 
 class WLEMForm(ContactForm):
 
 
 class WLEMForm(ContactForm):
+    disabled = True
     form_tag = 'wlem'
     form_title = u"WLEM - szkolenie dla warszawskich liderów edukacji medialnej"
     admin_list = ['nazwisko', 'instytucja', 'contact']
     form_tag = 'wlem'
     form_title = u"WLEM - szkolenie dla warszawskich liderów edukacji medialnej"
     admin_list = ['nazwisko', 'instytucja', 'contact']