diff --git a/seminar/forms.py b/seminar/forms.py index be722e16..a7e0e404 100644 --- a/seminar/forms.py +++ b/seminar/forms.py @@ -10,6 +10,21 @@ 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): + # 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,}$" + class LoginForm(forms.Form): username = forms.CharField(label='Přihlašovací jméno', max_length=256, @@ -42,8 +57,8 @@ class PrihlaskaForm(forms.Form): pohlavi_muz = forms.ChoiceField(label='Pohlaví', choices = ((True,'muž'),(False,'žena')), required=True) email = forms.EmailField(label='E-mail',max_length=256, required=True) - telefon = forms.CharField(label='Telefon',max_length=256, required=False) - datum_narozeni = forms.DateField(label='Datum narození', required=False) + telefon = forms.CharField(widget=TelInput(),label='Telefon',max_length=256, required=False) + datum_narozeni = forms.DateField(widget=DateInput(),label='Datum narození', required=False) ulice = forms.CharField(label='Ulice', max_length=256, required=False) mesto = forms.CharField(label='Město', max_length=256, required=False) psc = forms.CharField(label='PSČ', max_length=32, required=False) @@ -74,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) @@ -135,8 +152,8 @@ class ProfileEditForm(forms.Form): pohlavi_muz = forms.ChoiceField(label='Pohlaví', choices = ((True,'muž'),(False,'žena')), required=True) email = forms.EmailField(label='E-mail',max_length=256, required=True) - telefon = forms.CharField(label='Telefon',max_length=256, required=False) - datum_narozeni = forms.DateField(label='Datum narození', required=False) + telefon = forms.CharField(widget=TelInput(),label='Telefon',max_length=256, required=False) + datum_narozeni = forms.DateField(widget=DateInput(),label='Datum narození', required=False) ulice = forms.CharField(label='Ulice', max_length=256, required=False) mesto = forms.CharField(label='Město', max_length=256, required=False) psc = forms.CharField(label='PSČ', max_length=32, required=False) @@ -167,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') @@ -234,7 +253,7 @@ class VlozReseniForm(forms.Form): #resitele = models.ManyToManyField(Resitel, verbose_name='autoři řešení', # help_text='Seznam autorů řešení', through='Reseni_Resitele') - cas_doruceni = forms.DateField(label="Čas doručení") + cas_doruceni = forms.DateField(widget=DateInput(),label="Čas doručení") #cas_doruceni = models.DateTimeField('čas_doručení', default=timezone.now, blank=True) 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 %}