+
+
+class CollegiumMlodychTestForm(CollegiumTestForm):
+ def __init__(self, *args, **kwargs):
+ super(CollegiumMlodychTestForm, self).__init__(*args, **kwargs)
+ self.label_suffix = ''
+
+ result_page = True
+ form_tag = 'collegium-mlodych-test'
+ form_title = u'Test wiedzy w zakresie edukacji medialnej i cyfrowej'
+ submit_label = u'Wyślij'
+
+ contact = forms.EmailField(label=u'Adres e-mail, na który przyślemy informację o wynikach')
+
+ @classmethod
+ def results(cls, contact):
+ fields = cls().fields
+
+ def question_data(i):
+ field = 'pyt%s' % i
+ choices = fields[field].choices
+ answers = contact.body[field]
+ answer_data = []
+ for answer in answers:
+ idx = answer // 10
+ answer_data.append(
+ {
+ 'score': answer % 10,
+ 'index': idx,
+ 'letter': 'abcdef'[idx],
+ 'comment': mark_safe(markdown.convert(cls.ANSWER_COMMENTS[i-1][idx])),
+ })
+ correct = [answer // 10 for answer, text in choices if answer % 10 == 1]
+ return {
+ 'answer_data': answer_data,
+ 'correct': correct,
+ 'correct_letters': ['abcdef'[idx] for idx in correct],
+ 'label': fields[field].label,
+ 'answers': [(text, a_score in answers, a_score % 10 == 1) for a_score, text in choices],
+ 'full_match': set(answer['index'] for answer in answer_data) == set(correct)
+ }
+ question_count = 20
+ questions = [question_data(i) for i in xrange(1, question_count + 1)]
+ points = sum(1 for question in questions if question['full_match'])
+ return {'questions': questions, 'points': points, 'total': question_count}
+
+
+class ESEMWarszawaForm(ContactForm):
+ form_tag = 'emels-warszawa'
+ form_title = u"Ja i młodzież w cyfrowym świecie"
+ admin_list = ['imie', 'nazwisko', 'instytucja', 'contact']
+ submit_label = u'Wyślij'
+ mailing_field = 'zgoda_newsletter'
+ disabled = True
+ disabled_template = 'contact/disabled_contact_form.html'
+
+ imie = forms.CharField(label=u'Imię', max_length=128)
+ nazwisko = forms.CharField(label=u'Nazwisko', max_length=128)
+ contact = forms.EmailField(
+ label=u'Adres e-mail', max_length=128, help_text=u'Wyślemy na niego informacje organizacyjne.')
+ telefon = forms.CharField(
+ label=u'Numer telefonu', max_length=20,
+ help_text=u'Liczba miejsc na warsztatach jest ograniczona, będziemy telefonicznie potwierdzać '
+ u'obecność, a w przypadku rezygnacji chcielibyśmy móc udostępnić miejsce kolejnej '
+ u'zainteresowanej osobie.')
+ motywacja = forms.CharField(
+ label=u'W jaki sposób wykorzystasz wiedzę zdobytą na warsztatach?', max_length=1000,
+ widget=forms.Textarea)
+ instytucja = forms.CharField(label=u'Organizacja/instytucja', max_length=255)
+ zgoda_newsletter = forms.BooleanField(
+ required=False,
+ label=u'Chcę otrzymywać newsletter Edukacja medialna.')
+
+
+class ESEMGdanskForm(ESEMWarszawaForm):
+ form_tag = 'emels-gdansk'
+
+
+class MisjaCybernautowForm(ContactForm):
+ form_tag = 'misja-cybernautow'
+ form_title = u"Misja Cybernautów"
+ submit_label = u'Zapisz'
+ updatable = True
+ contact = forms.EmailField(label=u'Adres e-mail', max_length=128)
+ szkola = forms.CharField(label=u'Szkoła, do której chodzicie', max_length=255)
+ zespol = forms.CharField(label=u'Nazwa zespołu', max_length=255)
+ zdjecie_warszawa = forms.FileField(
+ label=u'Dołączcie zdjęcie pokazujące, że jesteście dziś w Warszawie', required=False)
+ zdjecie_planetarium = forms.FileField(
+ label=u'Dołączcie zdjęcie grupy na scenie przy planetarium', required=False)
+ zdjecie_zasady = forms.FileField(
+ label=u'Dołączcie zdjęcie napisanych przez Was zasad bezpiecznego korzystania z internetu', required=False)
+ zdjecie_piasek = forms.FileField(
+ label=u'Dołączcie zdjęcie zdjęcie notatki zrobionej na piasku', required=False)
+ sonda = forms.CharField(
+ widget=forms.Textarea, max_length=1000, required=False,
+ label=u'Jaki macie wnioski z sondy zrobionej w BUW-ie?')
+ fasada = forms.FileField(
+ label=u'Dołączcie zdjęcie kodu programu umieszczonego na fasadzie BUW-u', required=False)
+ ochrona = forms.CharField(
+ label=u'Jakie są Wasze pomysły na ochronę przed zagrożeniami na podstawie filmiku z kanału '
+ u'„To już jutro” na YouTube',
+ widget=forms.Textarea, max_length=1000, required=False)
+ obraz = forms.CharField(
+ label=u'Który obraz z Galerii Sztuki Polskiej wybraliście? Załączcie link', required=False, max_length=255)
+ haslo = forms.CharField(
+ label=mark_safe(u'Jaka jest Wasza propozycja mocne hasło, które stworzyliście i sprawdziliście na stronie '
+ u'<a href="https://howsecureismypassword.net" target="_blank">'
+ u'https://howsecureismypassword.net</a>?'),
+ required=False, max_length=255)
+ mem = forms.FileField(label=u'Dołączcie stworzony mem', required=False)
+ gif = forms.FileField(label=u'Dołączcie stworzony gif', required=False)