Fixes.
authorRadek Czajka <radekczajka@nowoczesnapolska.org.pl>
Thu, 13 Nov 2014 15:27:15 +0000 (16:27 +0100)
committerRadek Czajka <radekczajka@nowoczesnapolska.org.pl>
Thu, 13 Nov 2014 15:27:15 +0000 (16:27 +0100)
contact/admin.py
contact/forms.py
edumed/contact_forms.py
edumed/templates/contact/wtem/mail_body.txt
edumed/templates/contact/wtem/thanks.html
wtem/models.py
wtem/static/wtem/edumed.coffee
wtem/static/wtem/edumed.js

index f849f95..641770e 100644 (file)
@@ -6,7 +6,7 @@ from .forms import contact_forms, admin_list_width
 from django.template import Template
 from django.utils.safestring import mark_safe
 from django.conf.urls import patterns, url
-from django.http import HttpResponse
+from django.http import HttpResponse, Http404
 
 from .utils import csv_prepare
 
@@ -97,7 +97,7 @@ class ContactAdmin(admin.ModelAdmin):
     def changelist_view(self, request, extra_context=None):
         context = dict()
         if 'form_tag' in request.GET:
-            form = contact_forms[request.GET['form_tag']]
+            form = contact_forms.get(request.GET['form_tag'])
             context['extract_types'] = [dict(slug = 'all', label = _('all'))] + [dict(slug = 'contacts', label = _('contacts'))]
             context['extract_types'] += [type for type in getattr(form, 'extract_types', [])]
         return super(ContactAdmin, self).changelist_view(request, extra_context = context)
@@ -112,7 +112,9 @@ class ContactAdmin(admin.ModelAdmin):
 def extract_view(request, form_tag, extract_type_slug):
     toret = u''
     contacts_by_spec = dict()
-    form = contact_forms[form_tag]
+    form = contact_forms.get(form_tag)
+    if form is None and extract_type_slug not in ('contacts', 'all'):
+        raise Http404
 
     q = Contact.objects.filter(form_tag = form_tag)
     at_year = request.GET.get('created_at__year')
index b975da3..aab883d 100644 (file)
@@ -1,4 +1,5 @@
 from django.contrib.sites.models import Site
+from django.core.exceptions import ValidationError
 from django.core.files.uploadedfile import UploadedFile
 from django.core.mail import send_mail, mail_managers
 from django.core.validators import validate_email
@@ -78,7 +79,11 @@ class ContactForm(forms.Form):
         mail_managers(mail_managers_subject, mail_managers_body, 
             fail_silently=True)
 
-        if validate_email(contact.contact):
+        try:
+            validate_email(contact.contact)
+        except ValidationError:
+            pass
+        else:
             mail_subject = render_to_string([
                     'contact/%s/mail_subject.txt' % self.form_tag,
                     'contact/mail_subject.txt', 
index 9c74cbd..0ff8415 100644 (file)
@@ -120,8 +120,13 @@ class WTEMForm(ContactForm):
 
     zgoda_regulamin = forms.BooleanField(
         label=u'Znam i akceptuję regulamin Wielkiego Turnieju Edukacji Medialnej.',
-        help_text=u'Zobacz <a href="/media/chunks/attachment/WTEM_regulamin_1.pdf">regulamin Wielkiego Turnieju Edukacji Medialnej</a>.'
+        help_text=u'Zobacz <a href="/media/chunks/attachment/WTEM_regulamin_TmXC5VU.pdf">regulamin Wielkiego Turnieju Edukacji Medialnej</a>.'
     )
+    zgoda_dane = forms.BooleanField(
+        label=u'Wyrażam zgodę na przetwarzanie moich danych osobowych oraz danych osobowych moich podopiecznych, a także na publikację prac na wolnej licencji.',
+        help_text=u'Zobacz <a href="/media/chunks/attachment/Oswiadczenie_o_danych_osobowych.pdf">pełną treść oświadczenia</a>.'
+    )
+
     potw_uczniowie = forms.BooleanField(
         label=u'Potwierdzam, że zgłoszeni Uczestnicy/Uczestniczki w chwili rejestracji są uczniami/uczennicami szkoły ponadgimnazjalnej.',
     )
index 0c20f5f..b39acb4 100755 (executable)
@@ -3,13 +3,14 @@ Do udziału zostały zgłoszone następujące osoby:
 {% for student in contact.body.student %}
 * {{ student.first_name }} {{ student.last_name }}{% endfor %}
 
-Pierwszy etap Turnieju odbędzie się 21 listopada 2013 r. o godz. 15.30.
-Po zakończeniu rejestracji (4 listopada) każdy Uczestnik otrzyma maila
-z indywidualną instrukcją dotyczącą udziału w I etapie Turnieju.
+Pierwszy etap Turnieju odbędzie się 18 listopada 2014 r.
+Po zakończeniu rejestracji (31 października) do dn. 12 listopada 2014 r.
+każdy Uczestniok otrzyma maila z indywidualną instrukcją dotyczącą
+udziału w I etapie Turnieju.
 
 Wszystkie ogłoszenia związane z Turniejem będą publikowane na stronie
 http://edukacjamedialna.edu.pl/WTEM. W razie pytań lub wątpliwości
-możesz kontaktować się z nami pisząc na adres
+możesz kontaktować się z nami, pisząc na adres
 edukacjamedialna@nowoczesnapolska.org.pl.
 
 Z pozdrowieniami
index 9ad56ff..5bc66d8 100755 (executable)
@@ -6,7 +6,7 @@
 <p>Na adres adres e-mail Opiekuna została wysłana wiadomość potwierdzająca
 rejestrację.</p>
 
-<p>Pierwszy etap Turnieju odbędzie się 21 listopada 2013 r. o godz. 15.30.<br>
+<p>Pierwszy etap Turnieju odbędzie się 18 listopada 2013 r.<br>
 Serdecznie zapraszamy do udziału.</p>
 
 <p>Zespół Edukacji Medialnej<br>
index 4c3d0ee..fd8e834 100644 (file)
@@ -25,7 +25,7 @@ class Submission(models.Model):
     email = models.EmailField(max_length = 100, unique = True)
     answers = models.CharField(max_length = 65536, null = True, blank = True)
     key_sent = models.BooleanField(default = False)
-    marks = JSONField()
+    marks = JSONField(default={})
     examiners = models.ManyToManyField(User, null = True, blank = True)
     end_time = models.CharField(max_length = 5, null = True, blank = True)
 
index ae7aea9..6d96fb8 100644 (file)
@@ -417,7 +417,7 @@ class Przyporzadkuj extends Exercise
 
   draggable_accept: ($draggable, $droppable) ->
     dropped = $droppable.closest("ul, ol").find(".draggable")
-    return (super $draggable, $droppable) && dropped.length == 0
+    return (super $draggable, $droppable)
 
   check_question: (question) ->
     # subjects placed in predicates
index 940ca54..f44654d 100644 (file)
     Przyporzadkuj.prototype.draggable_accept = function($draggable, $droppable) {
       var dropped;
       dropped = $droppable.closest("ul, ol").find(".draggable");
-      return (Przyporzadkuj.__super__.draggable_accept.call(this, $draggable, $droppable)) && dropped.length === 0;
+      return (Przyporzadkuj.__super__.draggable_accept.call(this, $draggable, $droppable));
     };
 
     Przyporzadkuj.prototype.check_question = function(question) {