diff --git a/seminar/forms.py b/seminar/forms.py index 29e6607e..b28beeb9 100644 --- a/seminar/forms.py +++ b/seminar/forms.py @@ -123,23 +123,10 @@ class PrihlaskaForm(forms.Form): self.add_error('skola_adresa',forms.ValidationError('Je nutné vyplnit adresu školy')) - - class EditForm(forms.Form): username = forms.CharField(label='Přihlašovací jméno', max_length=256, - required=True, - help_text='Tímto jménem se následně budeš přihlašovat pro odevzdání řešení a další činnosti v semináři') - password = forms.CharField( - label='Heslo', - max_length=256, - required=False, - widget=forms.PasswordInput()) - password_check = forms.CharField( - label='Ověření hesla', - max_length=256, - required=False, - widget=forms.PasswordInput()) + required=True) jmeno = forms.CharField(label='Jméno', max_length=256, required=True) prijmeni = forms.CharField(label='Příjmení', max_length=256, required=True) @@ -178,7 +165,6 @@ class EditForm(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) - 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) # def clean_username(self): # err_logger = logging.getLogger('seminar.prihlaska.problem') diff --git a/seminar/templates/seminar/edit.html b/seminar/templates/seminar/edit.html index cc039301..3f3e0d99 100644 --- a/seminar/templates/seminar/edit.html +++ b/seminar/templates/seminar/edit.html @@ -20,10 +20,6 @@ Přihlašovací údaje
  • {% include "seminar/prihlaska_field.html" with field=form.username %} -
  • - {% include "seminar/prihlaska_field.html" with field=form.password %} -
  • - {% include "seminar/prihlaska_field.html" with field=form.password_check %}
  • Osobní údaje
  • @@ -68,9 +64,6 @@ {% include "seminar/prihlaska_field.html" with field=form.rok_maturity %}
  • {% include "seminar/prihlaska_field.html" with field=form.zasilat %} -
  • - {% include "seminar/gdpr.html" %} - {% include "seminar/prihlaska_field.html" with field=form.gdpr %}
  • {% include "seminar/prihlaska_field.html" with field=form.spam %}
  • diff --git a/seminar/views.py b/seminar/views.py index 39ee76af..27728f0c 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -1027,15 +1027,16 @@ def prihlaska_log_gdpr_safe(logger, gdpr_logger, msg, form_data): from django.forms.models import model_to_dict def resitelEditView(request): + err_logger = logging.getLogger('seminar.prihlaska.problem') ## Načtení objektu Osoba a Resitel, patrici k aktuálně přihlášenému uživately u = request.user osoba_edit = Osoba.objects.get(user=u) resitel_edit = osoba_edit.resitel user_edit = osoba_edit.user ## Vytvoření slovníku, kterým předvyplním formulář - prefill_1=model_to_dict(osoba_edit) + prefill_1=model_to_dict(user_edit) prefill_2=model_to_dict(resitel_edit) - prefill_3=model_to_dict(user_edit) + prefill_3=model_to_dict(osoba_edit) prefill_1.update(prefill_2) prefill_1.update(prefill_3) form = EditForm(initial=prefill_1) @@ -1043,7 +1044,35 @@ def resitelEditView(request): if request.method == 'POST': form = EditForm(request.POST) if form.is_valid(): - osoba_edit.prijmeni = 'NOVOTA' + ## Změny v osobě + fcd = form.cleaned_data + osoba_edit.jmeno = fcd['jmeno'] + osoba_edit.prijmeni = fcd['prijmeni'] + osoba_edit.pohlavi_muz = fcd['pohlavi_muz'] + osoba_edit.email = fcd['email'] + osoba_edit.telefon = fcd['telefon'] + osoba_edit.ulice = fcd['ulice'] + osoba_edit.mesto = fcd['mesto'] + osoba_edit.psc = fcd['psc'] + ## Změny v osobě s podmínkami + if fcd.get('spam',False): + osoba_edit.datum_souhlasu_zasilani = date.today() + if fcd.get('stat','') in ('CZ','SK'): + osoba_edit.stat = fcd['stat'] + else: + ## Neznámá země + msg = "Unknown country {}".format(fcd['stat_text']) + + ## Změny v řešiteli + resitel_edit.skola = fcd['skola'] + resitel_edit.rok_maturity = fcd['rok_maturity'] + resitel_edit.zasilat = fcd['zasilat'] + if fcd.get('skola'): + resitel_edit.skola = fcd['skola'] + else: + # Unknown school - log it + msg = "Unknown school {}, {}".format(fcd['skola_nazev'],fcd['skola_adresa']) + resitel_edit.save() osoba_edit.save() return HttpResponseRedirect('/thanks/') else: