data processing in forms
authorJan Szejko <janek37@gmail.com>
Tue, 15 May 2018 08:53:35 +0000 (10:53 +0200)
committerJan Szejko <janek37@gmail.com>
Tue, 15 May 2018 09:16:32 +0000 (11:16 +0200)
contact/forms.py
contact/templates/contact/form.html
edumed/contact_forms.py
edumed/static/css/form.css
edumed/static/css/form.scss

index 97fc027..4e99528 100644 (file)
@@ -38,6 +38,8 @@ class ContactForm(forms.Form):
     admin_list = None
     result_page = False
     mailing_field = None
     admin_list = None
     result_page = False
     mailing_field = None
+    mailing = False
+    data_processing = None
 
     required_css_class = 'required'
     contact = NotImplemented
 
     required_css_class = 'required'
     contact = NotImplemented
@@ -109,7 +111,7 @@ class ContactForm(forms.Form):
                         'contact/mail_body.txt',
                     ], dictionary, context)
             send_mail(mail_subject, mail_body, 'no-reply@%s' % site.domain, [contact.contact], fail_silently=True)
                         'contact/mail_body.txt',
                     ], dictionary, context)
             send_mail(mail_subject, mail_body, 'no-reply@%s' % site.domain, [contact.contact], fail_silently=True)
-            if self.mailing_field and self.cleaned_data[self.mailing_field]:
+            if self.mailing or (self.mailing_field and self.cleaned_data[self.mailing_field]):
                 email = self.cleaned_data['contact']
                 mailing.subscribe(email)
 
                 email = self.cleaned_data['contact']
                 mailing.subscribe(email)
 
index baea199..c0a108d 100644 (file)
@@ -20,6 +20,7 @@
     {% block form %}
         <table>
             {{ form.as_table }}
     {% block form %}
         <table>
             {{ form.as_table }}
+            {% if form.data_processing %}<tr><td></td><td><div class="helptext">{{ form.data_processing }}</div></td></tr>{% endif %}
             <tr><td></td><td><button>{% block contact_form_submit %}{{ form.submit_label }}{% endblock %}</button></td></tr>
         </table>
     {% endblock %}
             <tr><td></td><td><button>{% block contact_form_submit %}{{ form.submit_label }}{% endblock %}</button></td></tr>
         </table>
     {% endblock %}
index 257c2fb..b3268d6 100644 (file)
@@ -45,10 +45,19 @@ WOJEWODZTWA = (
 WOJEWODZTWO_CHOICES = [(u'', u'(wybierz)')] + [(w, w) for w in WOJEWODZTWA]
 
 
 WOJEWODZTWO_CHOICES = [(u'', u'(wybierz)')] + [(w, w) for w in WOJEWODZTWA]
 
 
-class RegistrationForm(ContactForm):
+def make_data_processing(middle_text):
+    return mark_safe(u'''\
+Administratorem danych osobowych jest Fundacja Nowoczesna Polska (ul. Marszałkowska 84/92 lok. 125, 00-514 Warszawa). \
+Podanie danych osobowych jest dobrowolne. %s Osobom, których dane są zbierane, przysługuje prawo dostępu do treści \
+swoich danych oraz ich poprawiania. Więcej informacji w <a href="https://nowoczesnapolska.org.pl/prywatnosc/">\
+polityce prywatności</a>.''' % middle_text)
+
+
+class SuggestionForm(ContactForm):
     form_tag = 'sugestie'
     form_title = u"Zgłoś sugestię"
     admin_list = ['podpis', 'contact', 'temat']
     form_tag = 'sugestie'
     form_title = u"Zgłoś sugestię"
     admin_list = ['podpis', 'contact', 'temat']
+    data_processing = make_data_processing(u'Dane są przetwarzane w zakresie niezbędnym do obsługi zgłoszenia.')
 
     contact = forms.EmailField(label=u'E-mail', max_length=128, required=False)
     podpis = forms.CharField(label=u'Podpis', max_length=128, required=False)
 
     contact = forms.EmailField(label=u'E-mail', max_length=128, required=False)
     podpis = forms.CharField(label=u'Podpis', max_length=128, required=False)
@@ -59,32 +68,13 @@ class RegistrationForm(ContactForm):
 class CooperateForm(ContactForm):
     form_tag = 'wspolpraca'
     form_title = u"Bądź z nami w kontakcie"
 class CooperateForm(ContactForm):
     form_tag = 'wspolpraca'
     form_title = u"Bądź z nami w kontakcie"
-    admin_list = ['podpis', 'contact']
-    mailing_field = 'zgoda_dane'
+    admin_list = ['contact']
+    mailing = True
+    data_processing = make_data_processing(
+        u'Dane są przetwarzane w zakresie niezbędnym do wysyłania newslettera odbiorcom.')
+    submit_label = u'Wyślij'
 
 
-    podpis = forms.CharField(label=u'Imię i nazwisko', max_length=128)
     contact = forms.EmailField(label=u'E-mail', max_length=128)
     contact = forms.EmailField(label=u'E-mail', max_length=128)
-    instytucja = forms.CharField(
-        label=u'Instytucja (nazwa, adres)', widget=forms.Textarea, max_length=1000, required=False)
-    uwagi = forms.CharField(label=u'Uwagi', widget=forms.Textarea, max_length=1800, required=False)
-        
-    zajecia_przedszkole = forms.BooleanField(label=u'Prowadzę zajęcia z dziećmi w wieku przedszkolnym', required=False)
-    zajecia_sp13 = forms.BooleanField(label=u'Prowadzę zajęcia z dziećmi z SP kl. 1-3', required=False)
-    zajecia_sp46 = forms.BooleanField(label=u'Prowadzę zajęcia z dziećmi z SP kl. 4-6', required=False)
-    zajecia_gimnazjum = forms.BooleanField(label=u'Prowadzę zajęcia z młodzieżą w wieku gimnazjalnym', required=False)
-    zajecia_ponadgimnazjalne = forms.BooleanField(
-        label=u'Prowadzę zajęcia z młodzieżą ze szkół ponadgimnazjalnych', required=False)
-    zajecia_wyzsze = forms.BooleanField(label=u'Prowadzę zajęcia w szkole wyższej', required=False)
-    zajecia_dorosli = forms.BooleanField(label=u'Prowadzę zajęcia dla dorosłych', required=False)
-    zajecia_seniorzy = forms.BooleanField(label=u'Prowadzę zajęcia dla seniorów', required=False)
-    zgoda_dane = forms.BooleanField(
-        label=u'Oświadczam, że wyrażam zgodę na przetwarzanie moich danych osobowych zawartych '
-              u'w niniejszym formularzu zgłoszeniowym przez Fundację Nowoczesna Polska '
-              u'(administratora danych) z siedzibą w Warszawie (00-514) przy ul. Marszałkowskiej 84/92 '
-              u'lok. 125 w celu otrzymywania newslettera Edukacja medialna. Jednocześnie oświadczam, '
-              u'że zostałam/em poinformowana/y o tym, że mam prawo wglądu w treść swoich danych '
-              u'i możliwość ich poprawiania oraz że ich podanie jest dobrowolne, ale niezbędne '
-              u'do dokonania zgłoszenia.')
 
 
 class ContestForm(ContactForm):
 
 
 class ContestForm(ContactForm):
@@ -343,6 +333,7 @@ class OlimpiadaForm(ContactForm):
 
 
 class MILForm(ContactForm):
 
 
 class MILForm(ContactForm):
+    disabled = True
     form_tag = 'mil'
     form_title = _('Share your thoughts on the "Media and information literacy competencies catalogue"')
     submit_label = _('Submit')
     form_tag = 'mil'
     form_title = _('Share your thoughts on the "Media and information literacy competencies catalogue"')
     submit_label = _('Submit')
index 10fb9f4..5699dd6 100644 (file)
@@ -7,6 +7,7 @@
   list-style: none;
   margin: 0; }
 .submit-form th {
   list-style: none;
   margin: 0; }
 .submit-form th {
+  min-width: 4em;
   max-width: 16em;
   font-weight: normal; }
 .submit-form .required th label:before, .submit-form .required > label:before {
   max-width: 16em;
   font-weight: normal; }
 .submit-form .required th label:before, .submit-form .required > label:before {
index d393def..90ad634 100755 (executable)
@@ -10,6 +10,7 @@
         margin: 0;
     }
     th {
         margin: 0;
     }
     th {
+        min-width: 4em;
         max-width: 16em;
         font-weight: normal;
     }
         max-width: 16em;
         font-weight: normal;
     }