Vysloužilým účastníkům zkrouhnout změnu údajů.
(Hlavně kvůli orgům, kteří nemohli editovat bez změny roku maturity)
This commit is contained in:
parent
653a564bfd
commit
aa8bb6dde4
3 changed files with 37 additions and 7 deletions
|
@ -142,6 +142,28 @@ class PrihlaskaForm(forms.Form):
|
|||
elif data.get('skola_adresa')=='':
|
||||
self.add_error('skola_adresa',forms.ValidationError('Je nutné vyplnit adresu školy'))
|
||||
|
||||
# Editační formulář bez řešitele.
|
||||
class ProfileEditFormPoMat(forms.Form):
|
||||
username = forms.CharField(label='Přihlašovací 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)
|
||||
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(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)
|
||||
stat = forms.ChoiceField(label='Stát',
|
||||
choices = (('CZ', 'Česká Republika'),
|
||||
('SK', 'Slovenská Republika'),
|
||||
('other', 'Jiné')),
|
||||
required=False)
|
||||
stat_text = forms.CharField(label='Stát', max_length=256, required=False)
|
||||
|
||||
class ProfileEditForm(forms.Form):
|
||||
username = forms.CharField(label='Přihlašovací jméno',
|
||||
|
@ -181,7 +203,7 @@ class ProfileEditForm(forms.Form):
|
|||
|
||||
rok_maturity = forms.IntegerField(
|
||||
label='Rok maturity',
|
||||
min_value=date.today().year,
|
||||
min_value=date.today().year,
|
||||
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)
|
||||
|
|
|
@ -61,6 +61,7 @@
|
|||
{% include "seminar/profil/prihlaska_field.html" with field=form.stat_text id="id_li_stat_text"%}
|
||||
</table>
|
||||
|
||||
{% if not PoMat %} {# Vysloužilým účastníkům skrýt editaci školy apod. #}
|
||||
<hr>
|
||||
|
||||
<h4>
|
||||
|
@ -95,6 +96,7 @@
|
|||
</table>
|
||||
|
||||
<hr>
|
||||
{% endif %}
|
||||
|
||||
<input type="submit" value="Změnit">
|
||||
</form>
|
||||
|
|
|
@ -26,7 +26,7 @@ import seminar.models as m
|
|||
from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, Soustredeni, Organizator, Resitel, Novinky, Soustredeni_Ucastnici, Pohadka, Tema, Clanek, Osoba, Skola # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci
|
||||
#from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva
|
||||
from seminar import utils, treelib
|
||||
from seminar.forms import PrihlaskaForm, LoginForm, ProfileEditForm
|
||||
from seminar.forms import PrihlaskaForm, LoginForm, ProfileEditForm, ProfileEditFormPoMat
|
||||
import seminar.forms as f
|
||||
import seminar.templatetags.treenodes as tnltt
|
||||
import seminar.views.views_rest as vr
|
||||
|
@ -1095,15 +1095,21 @@ def resitelEditView(request):
|
|||
user_edit = osoba_edit.user
|
||||
## Vytvoření slovníku, kterým předvyplním formulář
|
||||
prefill_1=model_to_dict(user_edit)
|
||||
if resitel_edit:
|
||||
if resitel_edit and resitel_edit.rok_maturity >= date.today().year:
|
||||
prefill_2=model_to_dict(resitel_edit)
|
||||
prefill_1.update(prefill_2)
|
||||
prefill_3=model_to_dict(osoba_edit)
|
||||
prefill_1.update(prefill_3)
|
||||
form = ProfileEditForm(initial=prefill_1)
|
||||
if resitel_edit and resitel_edit.rok_maturity < date.today().year:
|
||||
form = ProfileEditFormPoMat(initial=prefill_1)
|
||||
else:
|
||||
form = ProfileEditForm(initial=prefill_1)
|
||||
## Změna údajů a jejich uložení
|
||||
if request.method == 'POST':
|
||||
form = ProfileEditForm(request.POST)
|
||||
if resitel_edit and resitel_edit.rok_maturity < date.today().year:
|
||||
form = ProfileEditFormPoMat(request.POST)
|
||||
else:
|
||||
form = ProfileEditForm(request.POST)
|
||||
if form.is_valid():
|
||||
## Změny v osobě
|
||||
fcd = form.cleaned_data
|
||||
|
@ -1124,7 +1130,7 @@ def resitelEditView(request):
|
|||
## Neznámá země
|
||||
msg = "Unknown country {}".format(fcd['stat_text'])
|
||||
|
||||
if resitel_edit:
|
||||
if resitel_edit and resitel_edit.rok_maturity >= date.today().year:
|
||||
## Změny v řešiteli
|
||||
resitel_edit.skola = fcd['skola']
|
||||
resitel_edit.rok_maturity = fcd['rok_maturity']
|
||||
|
@ -1140,7 +1146,7 @@ def resitelEditView(request):
|
|||
return formularOKView(request)
|
||||
else:
|
||||
## Stránka před odeslaním formuláře = předvyplněný formulář
|
||||
return render(request, 'seminar/profil/edit.html', {'form': form})
|
||||
return render(request, 'seminar/profil/edit.html', {'form': form, 'PoMat': resitel_edit and resitel_edit.rok_maturity < date.today().year})
|
||||
|
||||
def prihlaskaView(request):
|
||||
generic_logger = logging.getLogger('seminar.prihlaska')
|
||||
|
|
Loading…
Reference in a new issue