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
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)
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')
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
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',
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.',
)
{% 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
<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>
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)
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
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) {