From: Jan Szejko Date: Tue, 4 Oct 2016 14:56:47 +0000 (+0200) Subject: registration for workshops X-Git-Url: https://git.mdrn.pl/prawokultury.git/commitdiff_plain/dbe22f64e83af84c570ada1c73975eff9d83efe2?ds=inline registration for workshops --- diff --git a/contact/templates/contact/form.html b/contact/templates/contact/form.html index 29fdfa8..22ca246 100644 --- a/contact/templates/contact/form.html +++ b/contact/templates/contact/form.html @@ -16,6 +16,10 @@
{% csrf_token %} + + + + {{ form.as_table }}
diff --git a/contact/widgets.py b/contact/widgets.py index a08e351..738ae04 100644 --- a/contact/widgets.py +++ b/contact/widgets.py @@ -4,7 +4,6 @@ from django.utils.html import format_html class HeaderWidget(forms.widgets.Widget): def render(self, name, value, attrs=None): - return '' attrs.update(self.attrs) - return format_html('{1}', flatatt(attrs), unicode(value)) - + return format_html('', flatatt(attrs)) + # return format_html('{1}', flatatt(attrs), unicode(value)) diff --git a/prawokultury/contact_forms.py b/prawokultury/contact_forms.py index 5a48c7e..f9ce14e 100644 --- a/prawokultury/contact_forms.py +++ b/prawokultury/contact_forms.py @@ -272,8 +272,8 @@ class NextForm(ContactForm): class WorkshopForm(ContactForm): - form_tag = 'workshop' - save_as_tag = 'workshop-2016' + form_tag = 'workshops' + save_as_tag = 'workshops-2016' conference_name = u'CopyCamp 2016' form_title = _('Workshop') @@ -281,65 +281,99 @@ class WorkshopForm(ContactForm): contact = forms.EmailField(label=_('E-mail'), max_length=128) organization = forms.CharField(label=_('Organization'), max_length=256, required=False) + country = forms.CharField(label=_('Country'), max_length=128) + + _header = HeaderField( + label=mark_safe_lazy(_("

I'll take a part in workshops

")), + help_text=_('Only workshops with any spots left are visible here.')) + + _h1 = HeaderField(label=mark_safe_lazy(_("Thursday, October 27th, 10 a.m.–12 noon"))) - _#header = HeaderField(label=mark_safe_lazy(_("

I'll take a part in workshops

")), help_text=_('Only workshops with any spots left are visible here.')) + w_dimitrov = forms.BooleanField(label=_(u'Dimitar Dimitrov: Hacking Brussels'), required=False) + w_vangompel = forms.BooleanField(label=_( + u'Stef van Gompel: Methods and constraints for including evidence in IP lawmaking'), required=False) - #_h1 = HeaderField(label=mark_safe_lazy(_("Thursday, November 6th, 10 a.m.–12 noon"))) + _h2 = HeaderField(label=mark_safe_lazy(_("Friday, October 28th, 10 a.m.–12 noon"))) - #w_rysiek = forms.BooleanField(label=_(u'Michał „rysiek” Woźniak, Koalicja Otwartej Edukacji KOED: Wprowadzenie do prawa autorskiego i wolnych licencji'), required=False) - #w_bartsch = forms.BooleanField(label=_(u'Natalia Bartsch: Wykorzystywanie istniejących utworów w tworzeniu przedstawienia teatralnego'), required=False) - #w_samsung = forms.BooleanField(label=_(u'Rafał Sikorski: Prywatny użytek w prawie autorskim w XXI wieku. Jak powinien wyglądać w\u00a0Unii Europejskiej?'), required=False) + w_siewicz = forms.BooleanField(label=_( + u'dr Krzysztof Siewicz, dr Marta Hoffman-Sommer: ' + u'Legal aspects of using research data in the age of Open Data'), required=False) + w_siewicz_project = forms.CharField( + label=mark_safe( + u'

Qualification for this workshop will be based on the answers ' + u'for the following problem:

' + u'Please choose a particular dataset from any research project you are involved in and provide ' + u'a description (no more than 1800 characters). Selected datasets will be discussed during ' + u'the workshop as case studies. In your description, please include the following information: ' + u'What is the research goal of the project (in the context of the chosen dataset)? ' + u'What data is being collected and how is it stored? What is the process of data collection ' + u'or generation? Who is involved in collecting or producing the data and in what manner?'), + max_length=1800, widget=forms.Textarea, required=False) + w_google = forms.BooleanField(label=_( + u'Marcin Olender, Google: Prawo autorskie na YouTube (workshop in Polish)'), required=False) - #_h2 = HeaderField(label=mark_safe_lazy(_("Friday, November 7th, 10 a.m.–12 noon"))) + _h3 = HeaderField(label=mark_safe_lazy(_("Friday, October 28th, 12 noon–2 p.m."))) - #w_mezei = forms.BooleanField(label=_(u'Péter Mezei: European copyright alternatives – 2014 (Workshop will be held in English)'), required=False) - #w_sliwowski = forms.BooleanField(label=_(u'Kamil Śliwowski, Koalicja Otwartej Edukacji KOED: Prawo autorskie w Sieci - ćwiczenia praktyczne'), required=False) + w_patronite = forms.BooleanField(label=_( + u'Mateusz Górski, Michał Leksiński, Patronite: Praktyczne aspekty dozwolonego użytku ' + u'(workshop in Polish)'), + required=False) - #_h3 = HeaderField(label=mark_safe_lazy(_("Friday, November 7th, 12 noon–2 p.m."))) + _header_1 = HeaderField(label='') - #w_zaiks = forms.BooleanField(label=_(u'Łukasz Łyczkowski, Adam Pacuski, Stowarzyszenie Autorów ZAiKS: Praktyczne aspekty dozwolonego użytku'), required=False) - #w_creativepoland = forms.BooleanField(label=_(u'Paweł Kaźmierczyk i Dagmara Białek, Creative Poland: Sektor kreatywny – pomysły są w cenie'), required=False) + start_workshops = ('dimitrov', 'vangompel', 'siewicz', 'google', 'patronite') - #_header_1 = HeaderField(label='') + slots = (('_h1', 'dimitrov', 'vangompel'), ('_h2', 'siewicz', 'google'), ('_h3', 'patronite')) - # agree_mailing = forms.BooleanField( - # label=_('I am interested in receiving information about the Modern Poland Foundation\'s activities by e-mail'), - # required=False - # ) + 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.') - ) + help_text=_( + u'I hereby grant Modern Poland Foundation (Fundacja Nowoczesna Polska, ul. Marszałkowska 84/92, ' + u'00-514 Warszawa) permission to process my personal data (name, e-mail address) for purposes of ' + u'registration for CopyCamp conference.')) agree_license = forms.BooleanField( label=_('Permission for publication'), - help_text=mark_safe_lazy(_(u'I agree to having materials, recorded during the conference, released under the terms of CC\u00a0BY-SA license and to publishing my image.')), - required=False - ) + help_text=mark_safe_lazy(_( + u'I agree to having materials, recorded during the conference, released under the terms of ' + u'CC\u00a0BY-SA ' + u'license and to publishing my image.')), + required=False) def __init__(self, *args, **kwargs): 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: - # 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 + # self.limit_reached = Contact.objects.filter(form_tag=self.save_as_tag).count() >= 60 + try: + url = Entry.objects.get(slug_pl='regulamin').get_absolute_url() + self.fields['agree_toc'] = forms.BooleanField( + required=True, + label=mark_safe(_('I accept Terms and Conditions of CopyCamp') % url) + ) + except Entry.DoesNotExist: + pass + 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 >= 30: + 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): + if self.cleaned_data.get('w_siewicz') and not self.cleaned_data.get('w_siewicz_project'): + self._errors['w_siewicz_project'] = [_("Please submit your answer to qualify for this workshop")] + for slot in self.slots: + if sum(1 for w in slot if self.cleaned_data.get('w_%s' % w)) > 1: + self._errors[slot[0]] = [_("You can't choose more than one workshop during the same period")] + if not any(self.cleaned_data.get('w_%s' % w) for w in self.start_workshops): + 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 d5f11cc..9f01a63 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 2b19477..eb9a3e1 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: 2016-09-22 13:21+0200\n" +"POT-Creation-Date: 2016-10-04 16:05+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:60 +#: contact_forms.py:23 templates/base.html:61 msgid "Registration" msgstr "Rejestracja" @@ -39,7 +39,7 @@ msgstr "E-mail" msgid "Organization" msgstr "Organizacja" -#: contact_forms.py:31 +#: contact_forms.py:31 contact_forms.py:284 msgid "Country" msgstr "Kraj" @@ -261,7 +261,7 @@ msgstr "konkretna(y) prelegentka(ent)" msgid "good networking occasion" msgstr "możliwość networkingu" -#: contact_forms.py:120 +#: contact_forms.py:120 contact_forms.py:329 msgid "" "I am interested in receiving information about the Modern Poland " "Foundation's activities by e-mail" @@ -269,11 +269,11 @@ msgstr "" "Jestem zainteresowana/y otrzymywaniem drogą mailową informacji dotyczących " "działalności Fundacji Nowoczesna Polska" -#: contact_forms.py:124 contact_forms.py:310 +#: contact_forms.py:124 contact_forms.py:332 msgid "Permission for data processing" msgstr "Zgoda na przetwarzanie danych" -#: contact_forms.py:125 contact_forms.py:311 +#: contact_forms.py:125 contact_forms.py:334 msgid "" "I hereby grant Modern Poland Foundation (Fundacja Nowoczesna Polska, ul. " "Marszałkowska 84/92, 00-514 Warszawa) permission to process my personal data " @@ -283,11 +283,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:128 contact_forms.py:314 +#: contact_forms.py:128 contact_forms.py:338 msgid "Permission for publication" msgstr "Zgoda na publikację" -#: contact_forms.py:129 contact_forms.py:315 +#: contact_forms.py:129 contact_forms.py:340 msgid "" "I agree to having materials, recorded during the conference, released under " "the terms of CC BY-SA oraz rozpowszechnianie wizerunku." -#: contact_forms.py:141 +#: contact_forms.py:141 contact_forms.py:352 #, python-format msgid "I accept Terms and Conditions of CopyCamp" msgstr "Akceptuję Regulamin CopyCampu" @@ -419,6 +419,71 @@ msgstr "Imię i nazwisko" msgid "Workshop" msgstr "Warsztat" +#: contact_forms.py:287 +msgid "

I'll take a part in workshops

" +msgstr "

Wezmę udział w warsztatach

" + +#: contact_forms.py:288 +msgid "Only workshops with any spots left are visible here." +msgstr "Widoczne są tylko warsztaty, w których są jeszcze miejsca." + +#: contact_forms.py:290 +msgid "Thursday, October 27th, 10 a.m.–12 noon" +msgstr "Czwartek, 27 października, 10:00–12:00" + +#: contact_forms.py:292 +msgid "Dimitar Dimitrov: Hacking Brussels" +msgstr "Dimitar Dimitrov: Hacking Brussels (warsztat w języku angielskim)" + +#: contact_forms.py:294 +msgid "" +"Stef van Gompel: Methods and constraints for including evidence in IP " +"lawmaking" +msgstr "" +"Stef van Gompel: Methods and constraints for including evidence in IP " +"lawmaking (warsztat w języku angielskim)" + +#: contact_forms.py:296 +msgid "Friday, October 28th, 10 a.m.–12 noon" +msgstr "Piątek, 28 października, 10:00–12:00" + +#: contact_forms.py:299 +msgid "" +"dr Krzysztof Siewicz, dr Marta Hoffman-Sommer: Legal aspects of using " +"research data in the age of Open Data" +msgstr "" +"dr Krzysztof Siewicz, dr Marta Hoffman-Sommer: Legal aspects of using " +"research data in the age of Open Data (warsztat w języku angielskim)" + +#: contact_forms.py:313 +msgid "Marcin Olender, Google: Prawo autorskie na YouTube (workshop in Polish)" +msgstr "Marcin Olender, Google: Prawo autorskie na YouTube" + +#: contact_forms.py:315 +msgid "Friday, October 28th, 12 noon–2 p.m." +msgstr "Piątek, 28 października, 12:00–14:00" + +#: contact_forms.py:318 +msgid "" +"Mateusz Górski, Michał Leksiński, Patronite: Praktyczne aspekty dozwolonego " +"użytku (workshop in Polish)" +msgstr "" +"Mateusz Górski, Michał Leksiński, Patronite: Praktyczne aspekty dozwolonego " +"użytku" + +#: contact_forms.py:373 +msgid "Please submit your answer to qualify for this workshop" +msgstr "" +"Zamieść odpowiedź na zadanie, aby móc się zakwalifikować na ten warsztat" + +#: contact_forms.py:376 +msgid "You can't choose more than one workshop during the same period" +msgstr "Nie możesz wybrać warsztatów odbywających się w tym samym czasie" + +#: contact_forms.py:378 +msgid "Please choose at least one workshop." +msgstr "Proszę wybrać co najmniej jeden warsztat." + #: settings.d/60-custom.py:5 msgid "info" msgstr "info" @@ -431,7 +496,7 @@ msgstr "Strona nie znaleziona" msgid "The page you were looking for doesn't exist." msgstr "Strona, której szukasz, nie istnieje." -#: templates/base.html:18 +#: templates/base.html:19 msgid "" "CopyCamp Conference is the first large-scale meeting in Poland devoted to " "the issues of copyright in both ideological and practical terms." @@ -439,15 +504,19 @@ msgstr "" "CopyCamp jest pierwszym w Polsce, organizowanym na dużą skalę spotkaniem " "osób zajmujących się problematyką praw autorskich." -#: templates/base.html:35 +#: templates/base.html:36 msgid "CopyCamp" msgstr "CopyCamp" -#: templates/base.html:51 +#: templates/base.html:52 msgid "Search" msgstr "Szukaj" -#: templates/base.html:103 +#: templates/base.html:68 +msgid "Workshops" +msgstr "Warsztaty" + +#: templates/base.html:105 msgid "" "If not explicitly stated otherwise, all texts are licensed under the Creative Commons " @@ -542,15 +611,6 @@ msgstr "" #~ msgid "Take part! / Workshops" #~ msgstr "Weź udział! / Warsztaty" -#~ msgid "

I'll take a part in workshops

" -#~ msgstr "

Wezmę udział w warsztatach

" - -#~ msgid "Only workshops with any spots left are visible here." -#~ msgstr "Widoczne są tylko warsztaty, w których są jeszcze miejsca." - -#~ msgid "Friday, November 7th, 10 a.m.–12 noon" -#~ msgstr "Piątek, 7 listopada, 10:00–12:00" - #~ msgid "" #~ "Péter Mezei: European copyright alternatives – 2014 (Workshop will be " #~ "held in English)" @@ -558,12 +618,6 @@ msgstr "" #~ "Péter Mezei: European copyright alternatives – 2014 (Uwaga! Warsztat " #~ "prowadzony będzie w jęz. angielskim.)" -#~ msgid "Friday, November 7th, 12 noon–2 p.m." -#~ msgstr "Piątek, 7 listopada, 12:00–14:00" - -#~ msgid "Please choose at least one workshop." -#~ msgstr "Proszę wybrać co najmniej jeden warsztat." - #~ msgid "Creative Middle Class" #~ msgstr "O kreatywnej klasie średniej" @@ -582,9 +636,6 @@ msgstr "" #~ msgid "Presentation" #~ msgstr "Prezentacja" -#~ msgid "Thursday, November 6th, 10 a.m.–12 noon" -#~ msgstr "Czwartek, 6 listopada, 10:00–12:00" - #~ msgid "Thank you for submitting the registration form at %(site_name)s." #~ msgstr "" #~ "Dziękujemy za wypełnienie formularza rejestracyjnego na stronie " diff --git a/prawokultury/settings.d/50-static.py b/prawokultury/settings.d/50-static.py index be0cd15..297d03b 100644 --- a/prawokultury/settings.d/50-static.py +++ b/prawokultury/settings.d/50-static.py @@ -37,6 +37,7 @@ PIPELINE_JS = { 'base': { 'source_filenames': ( 'js/promobox.js', + 'js/workshop_form.js', 'contrib/lightbox/js/lightbox.min.js', ), 'output_filename': 'compressed/base.js', diff --git a/prawokultury/static/js/workshop_form.js b/prawokultury/static/js/workshop_form.js new file mode 100644 index 0000000..bcc2c4b --- /dev/null +++ b/prawokultury/static/js/workshop_form.js @@ -0,0 +1,15 @@ +$(document).ready(function() { + + var project_row = $('#id_w_siewicz_project').closest('tr'); + + var switcher = $('#id_w_siewicz'); + + if (!switcher.is(':checked')) + project_row.hide(); + + switcher.on('change', function(data) { + console.log(data); + project_row.toggle(); + }) + +}); diff --git a/prawokultury/templates/base.html b/prawokultury/templates/base.html index 94d9954..890f042 100755 --- a/prawokultury/templates/base.html +++ b/prawokultury/templates/base.html @@ -5,6 +5,7 @@ {% load sponsor_tags %} {% load compressed %} {% load piwik_tags %} +{% load entry_url %} {% block "titleextra" %}{% endblock %}CopyCamp @@ -63,13 +64,14 @@