From: Jan Szejko Date: Tue, 5 Jul 2016 13:15:25 +0000 (+0200) Subject: update registration form for speakers X-Git-Url: https://git.mdrn.pl/prawokultury.git/commitdiff_plain/ad8ca731a4d54be4d3bfe6fabcb0591e645a1b5e update registration form for speakers --- diff --git a/prawokultury/contact_forms.py b/prawokultury/contact_forms.py index 7240eb5..bd4b556 100644 --- a/prawokultury/contact_forms.py +++ b/prawokultury/contact_forms.py @@ -30,14 +30,14 @@ class RegistrationForm(ContactForm): max_length=256, required=False) country = forms.CharField(label=_('Country'), max_length=128) - #days = forms.ChoiceField( + # days = forms.ChoiceField( # label = _("I'm planning to show up on"), # choices=[ # ('both', _('Both days of the conference')), # ('only-6th', _('November 6th only')), # ('only-7th', _('November 7th only')), # ], widget=forms.RadioSelect()) - + agree_mailing = forms.BooleanField( label=_('I am interested in receiving information about the Modern Poland Foundation\'s activities by e-mail'), required=False @@ -59,7 +59,7 @@ class RegistrationForm(ContactForm): try: url = Entry.objects.get(slug_pl='regulamin').get_absolute_url() self.fields['agree_toc'] = forms.BooleanField( - required = True, + required=True, label = mark_safe(_('I accept Terms and Conditions of CopyCamp') % url) ) except Entry.DoesNotExist: @@ -67,53 +67,57 @@ class RegistrationForm(ContactForm): tracks = ( - _('CopyArt'), - _('Models of Remuneration'), - _('Copyright and Education'), - _('Technology and Innovation'), + _('Copyright and Art'), + _('Remuneration Models'), + _('Copyright, Education and Science'), + _('Technology, Innovation and Copyright'), _('Copyright and Human Rights'), - _('Technologies in Social Activism'), _('Copyright Enforcement'), - _('Future of Copyright'), - _('Copyright Debate') + _('Copyright Debate'), + _('Copyright Lawmaking'), ) + class RegisterSpeaker(RegistrationForm): form_tag = 'register-speaker' save_as_tag = '2015-speaker' form_title = _('Open call for presentations') presentation_thematic_track = forms.ChoiceField( - label = _('Please select one thematic track'), - choices=[(t,t) for t in tracks], widget=forms.RadioSelect()) - - bio = forms.CharField(label=_('Short biographical note (max. 500 characters)'), - widget=forms.Textarea, max_length=500, required=True) + label=_('Please select one thematic track'), + choices=[(t, t) for t in tracks], widget=forms.RadioSelect()) + + bio = forms.CharField(label=mark_safe_lazy( + _('Short biographical note in Polish (max. 500 characters, fill at least one bio)')), + widget=forms.Textarea, max_length=500, required=False) + bio_en = forms.CharField(label=_('Short biographical note in English (max. 500 characters)'), widget=forms.Textarea, + max_length=500, required=False) photo = forms.FileField(label=_('Photo'), required=False) phone = forms.CharField(label=_('Phone number'), max_length=64, - required=False, - help_text=_('Used only for organizational purposes.')) - - #presentation = forms.BooleanField(label=_('Presentation'), required=False) - presentation_title = forms.CharField(label=_('Title of presentation'), - max_length=256) - #presentation = forms.FileField(label=_('Presentation'), - # required=False) + required=False, + help_text=_('Used only for organizational purposes.')) + + # presentation = forms.BooleanField(label=_('Presentation'), required=False) + presentation_title = forms.CharField( + label=mark_safe_lazy(_('Title of the presentation in Polish (fill at least one title)')), + max_length=256, required=False) + presentation_title_en = forms.CharField(label=_('Title of the presentation in English'), + max_length=256, required=False) + # presentation = forms.FileField(label=_('Presentation'), required=False) presentation_summary = forms.CharField(label=_('Summary of presentation (max. 1800 characters)'), - widget=forms.Textarea, max_length=1800) + widget=forms.Textarea, max_length=1800) presentation_post_conference_publication = forms.BooleanField( label=_('I am interested in including my paper in the post-conference publication'), required=False ) - #workshop = forms.BooleanField(label=_('Workshop'), required=False) - #workshop_title = forms.CharField(label=_('Title of workshop'), + # workshop = forms.BooleanField(label=_('Workshop'), required=False) + # workshop_title = forms.CharField(label=_('Title of workshop'), # max_length=256, required=False) - #workshop_summary = forms.CharField(label=_('Summary of workshop (max. 1800 characters)'), + # workshop_summary = forms.CharField(label=_('Summary of workshop (max. 1800 characters)'), # widget=forms.Textarea, max_length=1800, required=False) - def __init__(self, *args, **kw): super(RegisterSpeaker, self).__init__(*args, **kw) self.closed = getattr(settings, 'REGISTRATION_SPEAKER_CLOSED', False) @@ -124,21 +128,34 @@ class RegisterSpeaker(RegistrationForm): 'phone', 'organization', 'bio', + 'bio_en', 'photo', -# 'presentation', + # 'presentation', 'presentation_title', + 'presentation_title_en', 'presentation_summary', 'presentation_thematic_track', 'presentation_post_conference_publication', -# 'workshop', -# 'workshop_title', -# 'workshop_summary', + # 'workshop', + # 'workshop_title', + # 'workshop_summary', 'agree_mailing', 'agree_data', 'agree_license' ] + def clean(self): + cleaned_data = super(RegisterSpeaker, self).clean() + errors = [] + if not cleaned_data['bio'] and not cleaned_data['bio_en']: + errors.append(forms.ValidationError(_('Fill at least one bio!'))) + if not cleaned_data['presentation_title'] and not cleaned_data['presentation_title_en']: + errors.append(forms.ValidationError(_('Fill at least one title!'))) + if errors: + raise forms.ValidationError(errors) + return cleaned_data + class NextForm(ContactForm): form_tag = '/next' @@ -147,7 +164,7 @@ class NextForm(ContactForm): name = forms.CharField(label=_('Name'), max_length=128) contact = forms.EmailField(label=_('E-mail'), max_length=128) organization = forms.CharField(label=_('Organization'), - max_length=256, required=False) + max_length=256, required=False) class WorkshopForm(ContactForm): @@ -159,7 +176,7 @@ class WorkshopForm(ContactForm): name = forms.CharField(label=_('Name'), max_length=128) contact = forms.EmailField(label=_('E-mail'), max_length=128) organization = forms.CharField(label=_('Organization'), - max_length=256, required=False) + max_length=256, required=False) _#header = HeaderField(label=mark_safe_lazy(_("

I'll take a part in workshops

")), help_text=_('Only workshops with any spots left are visible here.')) @@ -181,10 +198,10 @@ class WorkshopForm(ContactForm): #_header_1 = HeaderField(label='') - #agree_mailing = forms.BooleanField( + # agree_mailing = forms.BooleanField( # label=_('I am interested in receiving information about the Modern Poland Foundation\'s activities by e-mail'), # required=False - #) + # ) agree_data = forms.BooleanField( label=_('Permission for data processing'), help_text=_(u'I hereby grant Modern Poland Foundation (Fundacja Nowoczesna Polska, ul. Marszałkowska 84/92, 00-514 Warszawa) permission to process my personal data (name, e-mail address) for purposes of registration for CopyCamp conference.') @@ -199,27 +216,26 @@ class WorkshopForm(ContactForm): super(WorkshopForm, self).__init__(*args, **kwargs) self.limit_reached = Contact.objects.filter(form_tag=self.save_as_tag).count() >= 60 - # counts = {k: 0 for k in self.start_workshops} - # for contact in Contact.objects.filter(form_tag=self.save_as_tag): - # for workshop in self.start_workshops: + # counts = {k: 0 for k in self.start_workshops} + # for contact in Contact.objects.filter(form_tag=self.save_as_tag): + # for workshop in self.start_workshops: # if contact.body.get('w_%s' % workshop, False): counts[workshop] += 1 - # some_full = False - # for k, v in counts.items(): - # if v >= 60: - # some_full = True - # if 'w_%s' % k in self.fields: - # del self.fields['w_%s' % k] - # if k in self.workshops: - # self.workshops.remove(k) - # if not some_full: - # self.fields['_header'].help_text = None - - #def clean(self): - # any_workshop = False - # for w in self.start_workshops: - # if self.cleaned_data.get('w_%s' % w): - # any_workshop = True - # if not any_workshop: - # self._errors['_header'] = [_("Please choose at least one workshop.")] - # return self.cleaned_data - + # some_full = False + # for k, v in counts.items(): + # if v >= 60: + # some_full = True + # if 'w_%s' % k in self.fields: + # del self.fields['w_%s' % k] + # if k in self.workshops: + # self.workshops.remove(k) + # if not some_full: + # self.fields['_header'].help_text = None + + # def clean(self): + # any_workshop = False + # for w in self.start_workshops: + # if self.cleaned_data.get('w_%s' % w): + # any_workshop = True + # if not any_workshop: + # self._errors['_header'] = [_("Please choose at least one workshop.")] + # return self.cleaned_data diff --git a/prawokultury/locale/pl/LC_MESSAGES/django.mo b/prawokultury/locale/pl/LC_MESSAGES/django.mo index 57cd73b..e9108ba 100644 Binary files a/prawokultury/locale/pl/LC_MESSAGES/django.mo and b/prawokultury/locale/pl/LC_MESSAGES/django.mo differ diff --git a/prawokultury/locale/pl/LC_MESSAGES/django.po b/prawokultury/locale/pl/LC_MESSAGES/django.po index b1c4e8c..b16451a 100644 --- a/prawokultury/locale/pl/LC_MESSAGES/django.po +++ b/prawokultury/locale/pl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: prawokultury\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-09-17 14:27+0000\n" +"POT-Creation-Date: 2016-07-05 15:06+0200\n" "PO-Revision-Date: 2014-09-30 16:25+0100\n" "Last-Translator: Radek Czajka \n" "Language-Team: FNP \n" @@ -19,7 +19,7 @@ msgstr "" "|| n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 1.5.4\n" -#: contact_forms.py:23 templates/base.html:53 +#: contact_forms.py:23 templates/base.html:60 msgid "Registration" msgstr "Rejestracja" @@ -31,11 +31,11 @@ msgstr "Imię" msgid "Last name" msgstr "Nazwisko" -#: contact_forms.py:28 contact_forms.py:148 contact_forms.py:160 +#: contact_forms.py:28 contact_forms.py:165 contact_forms.py:177 msgid "E-mail" msgstr "E-mail" -#: contact_forms.py:29 contact_forms.py:149 contact_forms.py:161 +#: contact_forms.py:29 contact_forms.py:166 contact_forms.py:178 msgid "Organization" msgstr "Organizacja" @@ -51,11 +51,11 @@ msgstr "" "Jestem zainteresowana/y otrzymywaniem drogą mailową informacji dotyczących " "działalności Fundacji Nowoczesna Polska" -#: contact_forms.py:46 contact_forms.py:189 +#: contact_forms.py:46 contact_forms.py:206 msgid "Permission for data processing" msgstr "Zgoda na przetwarzanie danych" -#: contact_forms.py:47 contact_forms.py:190 +#: contact_forms.py:47 contact_forms.py:207 msgid "" "I hereby grant Modern Poland Foundation (Fundacja Nowoczesna Polska, ul. " "Marszałkowska 84/92, 00-514 Warszawa) permission to process my personal data " @@ -65,11 +65,11 @@ msgstr "" "poczty elektronicznej) przez Fundację Nowoczesna Polska (ul. Marszałkowska " "84/92, 00-514 Warszawa) w związku z rejestracją na konferencję CopyCamp." -#: contact_forms.py:50 contact_forms.py:193 +#: contact_forms.py:50 contact_forms.py:210 msgid "Permission for publication" msgstr "Zgoda na publikację" -#: contact_forms.py:51 contact_forms.py:194 +#: contact_forms.py:51 contact_forms.py:211 msgid "" "I agree to having materials, recorded during the conference, released under " "the terms of Terms and Conditions of CopyCamp" msgstr "Akceptuję Regulamin CopyCampu" #: contact_forms.py:70 -msgid "CopyArt" +msgid "Copyright and Art" msgstr "Prawo autorskie i sztuka" #: contact_forms.py:71 -msgid "Models of Remuneration" +msgid "Remuneration Models" msgstr "Modele wynagradzania" #: contact_forms.py:72 -msgid "Copyright and Education" -msgstr "Prawo autorskie i edukacja" +msgid "Copyright, Education and Science" +msgstr "Prawo autorskie, edukacja i nauka" #: contact_forms.py:73 -msgid "Technology and Innovation" -msgstr "Technologie i innowacje" +msgid "Technology, Innovation and Copyright" +msgstr "Technologie, innowacje i prawo autorskie" #: contact_forms.py:74 msgid "Copyright and Human Rights" -msgstr "Prawo autorskie a prawa człowieka" +msgstr "Prawo autorskie i prawa człowieka" #: contact_forms.py:75 -msgid "Technologies in Social Activism" -msgstr "Technologie w aktywizmie społecznym" +msgid "Copyright Enforcement" +msgstr "Egzekwowanie prawa autorskiego" #: contact_forms.py:76 -msgid "Copyright Enforcement" -msgstr "Prawo autorskie i jego egzekwowanie" +msgid "Copyright Debate" +msgstr "Język debaty prawnoautorskiej" #: contact_forms.py:77 -msgid "Future of Copyright" -msgstr "Przyszłość prawa autorskiego" - -#: contact_forms.py:78 -msgid "Copyright Debate" -msgstr "O debacie prawnoautorskiej" +msgid "Copyright Lawmaking" +msgstr "Tworzenie prawa autorskiego" #: contact_forms.py:84 msgid "Open call for presentations" @@ -128,46 +124,70 @@ msgstr "Otwarty nabór prezentacji" msgid "Please select one thematic track" msgstr "Proszę wybrać jedną ścieżkę tematyczną" -#: contact_forms.py:90 -msgid "Short biographical note (max. 500 characters)" -msgstr "Krótka notka biograficzna (maks. 500 znaków)" +#: contact_forms.py:91 +msgid "" +"Short biographical note in Polish (max. 500 characters, fill at " +"least one bio)" +msgstr "Krótka notka biograficzna po polsku (maks. 500 znaków)" -#: contact_forms.py:92 +#: contact_forms.py:93 +msgid "Short biographical note in English (max. 500 characters)" +msgstr "" +"Krótka notka biograficzna po angielsku (maks. 500 znaków; wypełnij " +"przynajmniej jedną wersję językową, najlepiej obie)" + +#: contact_forms.py:95 msgid "Photo" msgstr "Zdjęcie" -#: contact_forms.py:93 +#: contact_forms.py:96 msgid "Phone number" msgstr "Numer telefonu" -#: contact_forms.py:95 +#: contact_forms.py:98 msgid "Used only for organizational purposes." msgstr "Używany wyłącznie do celów organizacyjnych." -#: contact_forms.py:98 -msgid "Title of presentation" -msgstr "Tytuł prezentacji" - #: contact_forms.py:102 +msgid "" +"Title of the presentation in Polish (fill at least one " +"title)" +msgstr "Polski tytuł prezentacji" + +#: contact_forms.py:104 +msgid "Title of the presentation in English" +msgstr "" +"Angielski tytuł prezentacji (wypełnij przynajmniej jeden tytuł, najlepiej " +"oba)" + +#: contact_forms.py:107 msgid "Summary of presentation (max. 1800 characters)" msgstr "Krótki opis prezentacji (maks. 1800 znaków)" -#: contact_forms.py:106 +#: contact_forms.py:111 msgid "" "I am interested in including my paper in the post-conference publication" msgstr "" "Jestem zainteresowana/y umieszczeniem pisemnej wersji mojego wystąpienia w " "publikacji pokonferencyjnej" -#: contact_forms.py:145 +#: contact_forms.py:152 +msgid "Fill at least one bio!" +msgstr "Wpisz przynajmniej jedną notkę biograficzną (po polsku lub angielsku)!" + +#: contact_forms.py:154 +msgid "Fill at least one title!" +msgstr "Wpisz przynajmniej jeden tytuł prezentacji (po polsku lub angielsku)!" + +#: contact_forms.py:162 msgid "Next CopyCamp" msgstr "Kolejny CopyCamp" -#: contact_forms.py:147 contact_forms.py:159 +#: contact_forms.py:164 contact_forms.py:176 msgid "Name" msgstr "Imię i nazwisko" -#: contact_forms.py:157 +#: contact_forms.py:174 msgid "Workshop" msgstr "Warsztat" @@ -191,15 +211,15 @@ msgstr "" "CopyCamp jest pierwszym w Polsce, organizowanym na dużą skalę spotkaniem " "osób zajmujących się problematyką praw autorskich." -#: templates/base.html:28 +#: templates/base.html:35 msgid "CopyCamp" msgstr "CopyCamp" -#: templates/base.html:44 +#: templates/base.html:51 msgid "Search" msgstr "Szukaj" -#: templates/base.html:96 +#: templates/base.html:103 msgid "" "If not explicitly stated otherwise, all texts are licensed under the Creative Commons "