EditView, EditFrom, Edit.html uprava
This commit is contained in:
parent
08eb89d790
commit
5f66fd0b03
3 changed files with 33 additions and 25 deletions
|
@ -123,23 +123,10 @@ class PrihlaskaForm(forms.Form):
|
||||||
self.add_error('skola_adresa',forms.ValidationError('Je nutné vyplnit adresu školy'))
|
self.add_error('skola_adresa',forms.ValidationError('Je nutné vyplnit adresu školy'))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class EditForm(forms.Form):
|
class EditForm(forms.Form):
|
||||||
username = forms.CharField(label='Přihlašovací jméno',
|
username = forms.CharField(label='Přihlašovací jméno',
|
||||||
max_length=256,
|
max_length=256,
|
||||||
required=True,
|
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())
|
|
||||||
|
|
||||||
jmeno = forms.CharField(label='Jméno', max_length=256, required=True)
|
jmeno = forms.CharField(label='Jméno', max_length=256, required=True)
|
||||||
prijmeni = forms.CharField(label='Příjmení', 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,
|
max_value=date.today().year+8,
|
||||||
required=True)
|
required=True)
|
||||||
zasilat = forms.ChoiceField(label='Kam zasílat čísla a řešení',choices = Resitel.ZASILAT_CHOICES, 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)
|
spam = forms.BooleanField(label='Souhlasím se zasíláním materiálů od MFF UK', required=False)
|
||||||
# def clean_username(self):
|
# def clean_username(self):
|
||||||
# err_logger = logging.getLogger('seminar.prihlaska.problem')
|
# err_logger = logging.getLogger('seminar.prihlaska.problem')
|
||||||
|
|
|
@ -20,10 +20,6 @@
|
||||||
Přihlašovací údaje
|
Přihlašovací údaje
|
||||||
</li><li>
|
</li><li>
|
||||||
{% include "seminar/prihlaska_field.html" with field=form.username %}
|
{% include "seminar/prihlaska_field.html" with field=form.username %}
|
||||||
</li><li>
|
|
||||||
{% include "seminar/prihlaska_field.html" with field=form.password %}
|
|
||||||
</li><li>
|
|
||||||
{% include "seminar/prihlaska_field.html" with field=form.password_check %}
|
|
||||||
</li><li>
|
</li><li>
|
||||||
Osobní údaje
|
Osobní údaje
|
||||||
</li><li>
|
</li><li>
|
||||||
|
@ -68,9 +64,6 @@
|
||||||
{% include "seminar/prihlaska_field.html" with field=form.rok_maturity %}
|
{% include "seminar/prihlaska_field.html" with field=form.rok_maturity %}
|
||||||
</li><li>
|
</li><li>
|
||||||
{% include "seminar/prihlaska_field.html" with field=form.zasilat %}
|
{% include "seminar/prihlaska_field.html" with field=form.zasilat %}
|
||||||
</li><li>
|
|
||||||
{% include "seminar/gdpr.html" %}
|
|
||||||
{% include "seminar/prihlaska_field.html" with field=form.gdpr %}
|
|
||||||
</li><li>
|
</li><li>
|
||||||
{% include "seminar/prihlaska_field.html" with field=form.spam %}
|
{% include "seminar/prihlaska_field.html" with field=form.spam %}
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -1027,15 +1027,16 @@ def prihlaska_log_gdpr_safe(logger, gdpr_logger, msg, form_data):
|
||||||
|
|
||||||
from django.forms.models import model_to_dict
|
from django.forms.models import model_to_dict
|
||||||
def resitelEditView(request):
|
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
|
## Načtení objektu Osoba a Resitel, patrici k aktuálně přihlášenému uživately
|
||||||
u = request.user
|
u = request.user
|
||||||
osoba_edit = Osoba.objects.get(user=u)
|
osoba_edit = Osoba.objects.get(user=u)
|
||||||
resitel_edit = osoba_edit.resitel
|
resitel_edit = osoba_edit.resitel
|
||||||
user_edit = osoba_edit.user
|
user_edit = osoba_edit.user
|
||||||
## Vytvoření slovníku, kterým předvyplním formulář
|
## 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_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_2)
|
||||||
prefill_1.update(prefill_3)
|
prefill_1.update(prefill_3)
|
||||||
form = EditForm(initial=prefill_1)
|
form = EditForm(initial=prefill_1)
|
||||||
|
@ -1043,7 +1044,35 @@ def resitelEditView(request):
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
form = EditForm(request.POST)
|
form = EditForm(request.POST)
|
||||||
if form.is_valid():
|
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()
|
osoba_edit.save()
|
||||||
return HttpResponseRedirect('/thanks/')
|
return HttpResponseRedirect('/thanks/')
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in a new issue