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',  | ||||
|  |  | |||
|  | @ -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
	
	 Jonas Havelka
						Jonas Havelka