diff --git a/seminar/forms.py b/seminar/forms.py index e45c50f6..a7e0e404 100644 --- a/seminar/forms.py +++ b/seminar/forms.py @@ -10,10 +10,18 @@ import seminar.models as m from datetime import date import logging +# pro přidání políčka do formuláře je potřeba +# - mít v modelu tu položku, kterou chci upravovat +# - přidat do views (prihlaskaView, resitelEditView) +# - přidat do forms +# - includovat do html + class DateInput(forms.DateInput): - input_type = 'date' + # aby se datum dalo vybírat z kalendáře + input_type = 'date' class TelInput(forms.TextInput): + # tohle je možná k niřemu, ale alepsoň to mění input type a nic to nekazí input_type = 'tel' input_pattern="^[+]?[()/0-9. -]{9,}$" @@ -81,6 +89,8 @@ class PrihlaskaForm(forms.Form): max_value=date.today().year+8, required=True) zasilat = forms.ChoiceField(label='Kam zasílat čísla a řešení',choices = Resitel.ZASILAT_CHOICES, required=True) + zasilat_cislo_emailem = forms.BooleanField(label='Chci dostávat emailem upozornění na vydání nového čísla', required=True) + gdpr = forms.BooleanField(label='Souhlasím se zpracováním osobních údajů', required=True) spam = forms.BooleanField(label='Souhlasím se zasíláním materiálů od MFF UK', required=False) @@ -174,6 +184,8 @@ class ProfileEditForm(forms.Form): max_value=date.today().year+8, required=True) zasilat = forms.ChoiceField(label='Kam zasílat čísla a řešení',choices = Resitel.ZASILAT_CHOICES, required=True) + zasilat_cislo_emailem = forms.BooleanField(label='Chci dostávat email s upozorněním na vydání nového čísla', required=True) + spam = forms.BooleanField(label='Souhlasím se zasíláním materiálů od MFF UK', required=False) # def clean_username(self): # err_logger = logging.getLogger('seminar.prihlaska.problem') diff --git a/seminar/models.py b/seminar/models.py index 895f2cbb..6324da25 100644 --- a/seminar/models.py +++ b/seminar/models.py @@ -260,8 +260,10 @@ class Resitel(SeminarModelBase): (ZASILAT_DO_SKOLY, 'Do školy'), (ZASILAT_NIKAM, 'Nikam'), ] + zasilat = models.CharField('kam zasílat', max_length=32, choices=ZASILAT_CHOICES, blank=False, default=ZASILAT_DOMU) + zasilat_cislo_emailem = models.BooleanField('zasílat číslo emailem', help_text='True pokud chce řešitel dostávat číslo emailem', default=False) poznamka = models.TextField('neveřejná poznámka', blank=True, help_text='Neveřejná poznámka k řešiteli (plain text)') diff --git a/seminar/templates/seminar/profil/edit.html b/seminar/templates/seminar/profil/edit.html index 827e26f1..803a64af 100644 --- a/seminar/templates/seminar/profil/edit.html +++ b/seminar/templates/seminar/profil/edit.html @@ -6,6 +6,17 @@ {{form.media}} {% endblock %} + + + {% block content %}

{% block nadpis1a %}{% block nadpis1b %} @@ -73,6 +84,7 @@

{% include "seminar/profil/prihlaska_field.html" with field=form.zasilat %} + {% include "seminar/profil/prihlaska_field.html" with field=form.zasilat_cislo_emailem %}

diff --git a/seminar/templates/seminar/profil/prihlaska.html b/seminar/templates/seminar/profil/prihlaska.html index 125a5ffb..22bd3385 100644 --- a/seminar/templates/seminar/profil/prihlaska.html +++ b/seminar/templates/seminar/profil/prihlaska.html @@ -7,6 +7,16 @@ {% endblock %} + + {% block content %}

{% block nadpis1a %}{% block nadpis1b %} @@ -77,6 +87,7 @@

{% include "seminar/profil/prihlaska_field.html" with field=form.zasilat %} + {% include "seminar/profil/prihlaska_field.html" with field=form.zasilat_cislo_emailem %}

diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index a550c40a..262905e2 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -1332,6 +1332,12 @@ class ResitelView(LoginRequiredMixin,generic.DetailView): ### Formulare +# pro přidání políčka do formuláře je potřeba +# - mít v modelu tu položku, kterou chci upravovat +# - přidat do views (prihlaskaView, resitelEditView) +# - přidat do forms +# - includovat do html + class AddSolutionView(LoginRequiredMixin, FormView): template_name = 'seminar/org/vloz_reseni.html' form_class = f.VlozReseniForm @@ -1448,6 +1454,7 @@ def resitelEditView(request): resitel_edit.skola = fcd['skola'] resitel_edit.rok_maturity = fcd['rok_maturity'] resitel_edit.zasilat = fcd['zasilat'] + resitel_edit.zasilat_cislo_emailem = fcd['zasilat_cislo_emailem'] if fcd.get('skola'): resitel_edit.skola = fcd['skola'] else: @@ -1511,7 +1518,8 @@ def prihlaskaView(request): r = Resitel( rok_maturity = fcd['rok_maturity'], - zasilat = fcd['zasilat'] + zasilat = fcd['zasilat'], + zasilat_cislo_emailem = fcd['zasilat_cislo_emailem'] ) r.save()