Add formsets to contact forms, add WTEM form.
[edumed.git] / edumed / contact_forms.py
1 # -*- coding: utf-8 -*-
2 from django import forms
3 from contact.forms import ContactForm
4
5
6 class RegistrationForm(ContactForm):
7     form_tag = 'sugestie'
8     form_title = u"Zgłoś sugestię"
9     admin_list = ['podpis', 'contact', 'temat']
10
11     contact = forms.EmailField(label=u'E-mail', max_length=128, required=False)
12     podpis = forms.CharField(label=u'Podpis', max_length=128, required=False)
13     temat = forms.CharField(label=u'Temat zgłoszenia', max_length=255)
14     tresc = forms.CharField(label=u'Treść', widget=forms.Textarea, max_length=1800)
15
16
17 class CooperateForm(ContactForm):
18     form_tag = 'wspolpraca'
19     form_title = u"Bądź z nami w kontakcie"
20     admin_list = ['podpis', 'contact']
21
22     podpis = forms.CharField(label=u'Imię i nazwisko', max_length=128)
23     contact = forms.EmailField(label=u'E-mail', max_length=128)
24     instytucja = forms.CharField(label=u'Instytucja (nazwa, adres)', 
25             widget=forms.Textarea, max_length=1000, required=False)
26     uwagi = forms.CharField(label=u'Uwagi', widget=forms.Textarea, max_length=1800, required=False)
27         
28     zajecia_przedszkole = forms.BooleanField(label=u'Prowadzę zajęcia z dziećmi w wieku przedszkolnym', required=False)
29     zajecia_sp13 = forms.BooleanField(label=u'Prowadzę zajęcia z dziećmi z SP kl. 1-3', required=False)
30     zajecia_sp46 = forms.BooleanField(label=u'Prowadzę zajęcia z dziećmi z SP kl. 4-6', required=False)
31     zajecia_gimnazjum = forms.BooleanField(label=u'Prowadzę zajęcia z młodzieżą w wieku gimnazjalnym', required=False)
32     zajecia_ponadgimnazjalne = forms.BooleanField(label=u'Prowadzę zajęcia z młodzieżą ze szkół ponadgimnazjalnych', required=False)
33     zajecia_wyzsze = forms.BooleanField(label=u'Prowadzę zajęcia w szkole wyższej', required=False)
34     zajecia_dorosli = forms.BooleanField(label=u'Prowadzę zajęcia dla dorosłych', required=False)
35     zajecia_seniorzy = forms.BooleanField(label=u'Prowadzę zajęcia dla seniorów', required=False)
36
37
38 class ContestForm(ContactForm):
39     form_tag = 'konkurs'
40     form_title = u"Zgłoś się do konkursu"
41     admin_list = ['nazwisko', 'instytucja', 'tytul']
42
43     nazwisko = forms.CharField(label=u'Imię i nazwisko', max_length=128)
44     contact = forms.EmailField(label=u'Adres e-mail', max_length=128)
45     instytucja = forms.CharField(label=u'Instytucja (nazwa, adres)', 
46             widget=forms.Textarea, max_length=1000)
47     tytul = forms.CharField(label=u'Tytuł przeprowadzonej lekcji',
48             help_text=u'proszę wymienić wszystkie, jeśli zostały przeprowadzone więcej niż jedne zajęcia', 
49             widget=forms.Textarea, max_length=1000)
50     uczestnicy = forms.CharField(label=u'Liczba uczestników', max_length=64)
51     trudnosci = forms.CharField(label=u'Czy w trakcie zajęć pojawiły się jakieś trudności? Jeśli tak, to jakie?', 
52             widget=forms.Textarea, max_length=2000)
53     pomocne = forms.CharField(label=u'Co w materiałach okazało się najbardziej pomocne w przygotowaniu i prowadzeniu lekcji?', 
54             widget=forms.Textarea, max_length=2000)
55     nieprzydatne = forms.CharField(label=u'Co w materiałach okazało się nieprzydatne w przygotowaniu i prowadzeniu lekcji?', 
56             widget=forms.Textarea, max_length=2000)
57     poprawic = forms.CharField(label=u'Jak możemy poprawić serwis edukacjamedialna.edu.pl?', 
58             widget=forms.Textarea, max_length=2000,
59             required=False)
60     inne = forms.CharField(label=u'Inne uwagi i komentarze', 
61             widget=forms.Textarea, max_length=2000,
62             required=False)
63     zgoda_regulamin = forms.BooleanField(
64         label=u'Znam i akceptuję regulamin konkursu Medialog.',
65         help_text=u'Zobacz <a href="/media/chunks/attachment/Regulamin_konkursu_MediaLog_1.pdf">regulamin konkursu MediaLog</a>.'
66     )
67     zgoda_informacje = forms.BooleanField(
68         label=u'Wyrażam zgodę na otrzymywanie informacji od Fundacji Nowoczesna Polska związanych z edukacją medialną.',
69         required=False
70     )
71
72
73 class UdzialForm(ContactForm):
74     form_tag = 'udzial'
75     form_title = u"Udział"
76     admin_list = ['nazwisko', 'miejscowosc', 'instytucja']
77
78     nazwisko = forms.CharField(label=u'Imię i nazwisko', max_length=128)
79     miejscowosc = forms.CharField(label=u'Miejscowość', max_length=128)
80     instytucja = forms.CharField(label=u'Nazwa organizacji/instytucji', max_length=128)
81     contact = forms.EmailField(label=u'Adres e-mail', max_length=128)
82     telefon = forms.CharField(label=u'Telefon', max_length=32)
83     uczestnicy = forms.IntegerField(label=u'Przewidywana liczba uczestników zajęć')
84
85
86 class WTEMStudentForm(forms.Form):
87     first_name = forms.CharField(label=u'Imię', max_length=128)
88     last_name = forms.CharField(label=u'Nazwisko', max_length=128)
89     email = forms.EmailField(label=u'Adres e-mail', max_length=128)
90     form_tag = "student"
91
92 class NoEmptyFormsAllowedBaseFormSet(forms.formsets.BaseFormSet):
93     """
94     Won't allow formset_factory to be submitted with no forms
95     """
96     def clean(self):
97         for form in self.forms:
98             if form.cleaned_data:
99                 return
100         raise forms.ValidationError(u"Proszę podać dane przynajmniej jednego ucznia.")
101
102 class WTEMForm(ContactForm):
103     form_tag = "wtem"
104     form_title = u"WTEM - rejestracja uczestników"
105     submit_label = u"Wyślij zgłoszenie"
106     form_formsets = (forms.formsets.formset_factory(WTEMStudentForm, formset=NoEmptyFormsAllowedBaseFormSet),)
107
108     contact = forms.EmailField(label=u'Adres e-mail opiekuna/opiekunki', max_length=128)
109     imie = forms.CharField(label=u'Imię', max_length=128)
110     nazwisko = forms.CharField(label=u'Nazwisko', max_length=128)
111     function = forms.CharField(label=u'Pełniona funkcja', max_length=255)
112     institution = forms.CharField(label=u'Nazwa instytucji', max_length=255)
113     institution_address = forms.CharField(label=u'Adres instytucji', widget=forms.Textarea, max_length=1000)
114     institution_email = forms.EmailField(label=u'Adres e-mail instytucji', max_length=128)
115     institution_phone = forms.CharField(label=u'Telefon do instytucji', max_length=32)
116     institution_www = forms.URLField(label=u'Strona WWW instytucji', max_length=255, required=False)
117
118     zgoda_regulamin = forms.BooleanField(
119         label=u'Znam i akceptuję regulamin Wielkiego Turnieju Edukacji Medialnej.',
120         help_text=u'Zobacz <a href="/media/chunks/attachment/.pdf">regulamin Wielkiego Turnieju Edukacji Medialnej</a>.'
121     )
122     potw_uczniowie = forms.BooleanField(
123         label=u'Potwierdzam, że zgłoszeni Uczestnicy/Uczestniczki w chwili rejestracji są uczniami/uczennicami szkoły ponadgimnazjalnej.',
124         #help_text=u'Zobacz <a href="/media/chunks/attachment/.pdf">regulamin Wielkiego Turnieju Edukacji Medialnej</a>.'
125     )
126     zgoda_informacje = forms.BooleanField(
127         label=u'Wyrażam zgodę na otrzymywanie informacji od Fundacji Nowoczesna Polska związanych z edukacją medialną.',
128         required=False
129     )
130