Fix: 0.5 · #1237
This commit is contained in:
		
							parent
							
								
									c17afece9d
								
							
						
					
					
						commit
						0d17b45011
					
				
					 7 changed files with 50 additions and 1 deletions
				
			
		|  | @ -32,6 +32,7 @@ class PrihlaskaForm(PasswordResetForm): | |||
| 			help_text='Tímto jménem se následně budeš přihlašovat pro odevzdání řešení a další činnosti v semináři') | ||||
| 
 | ||||
| 	jmeno = forms.CharField(label='Jméno', max_length=256, required=True) | ||||
| 	prezdivka_resitele = forms.CharField(label='Přezdívka (veřejná)', max_length=256, required=False) | ||||
| 	prijmeni = forms.CharField(label='Příjmení', max_length=256, required=True) | ||||
| 	pohlavi_muz = forms.ChoiceField(label='Pohlaví', | ||||
| 			choices = ((True,'muž'),(False,'žena')), required=True) | ||||
|  | @ -105,6 +106,17 @@ class PrihlaskaForm(PasswordResetForm): | |||
| 			pass | ||||
| 		return email | ||||
| 
 | ||||
| 	def clean_prezdivka_resitele(self): | ||||
| 		prezdivka_resitele = self.cleaned_data.get('prezdivka_resitele') | ||||
| 		if prezdivka_resitele == '': | ||||
| 			return prezdivka_resitele | ||||
| 		try: | ||||
| 			Resitel.objects.get(prezdivka_resitele=prezdivka_resitele) | ||||
| 			raise forms.ValidationError('Přezdívka je již použita') | ||||
| 		except ObjectDoesNotExist: | ||||
| 			pass | ||||
| 		return prezdivka_resitele | ||||
| 
 | ||||
| 	def clean_zasilat(self): | ||||
| 		zasilat = self.cleaned_data.get('zasilat') | ||||
| 		ulice = self.cleaned_data.get('ulice') | ||||
|  | @ -138,6 +150,7 @@ class ProfileEditForm(forms.Form): | |||
| 			disabled=True) | ||||
| 
 | ||||
| 	jmeno = forms.CharField(label='Jméno', max_length=256, required=True) | ||||
| 	prezdivka_resitele = forms.CharField(label='Přezdívka (veřejná)', max_length=256, required=False) | ||||
| 	prijmeni = forms.CharField(label='Příjmení', max_length=256, required=True) | ||||
| 	pohlavi_muz = forms.ChoiceField(label='Pohlaví', | ||||
| 			choices = ((True,'muž'),(False,'žena')), required=True) | ||||
|  | @ -190,6 +203,18 @@ class ProfileEditForm(forms.Form): | |||
| #			pass | ||||
| #		return username | ||||
| # | ||||
| 
 | ||||
| 	def clean_prezdivka_resitele(self): | ||||
| 		prezdivka_resitele = self.cleaned_data.get('prezdivka_resitele') | ||||
| 		if prezdivka_resitele == '': | ||||
| 			return prezdivka_resitele | ||||
| 		try: | ||||
| 			Resitel.objects.get(prezdivka_resitele=prezdivka_resitele) | ||||
| 			raise forms.ValidationError('Přezdívka je již použita') | ||||
| 		except ObjectDoesNotExist: | ||||
| 			pass | ||||
| 		return prezdivka_resitele | ||||
| 
 | ||||
| 	def clean_email(self): | ||||
| 		err_logger = logging.getLogger('seminar.prihlaska.problem') | ||||
| 		email = self.cleaned_data.get('email') | ||||
|  |  | |||
|  | @ -44,6 +44,7 @@ | |||
|     </h4> | ||||
|       <table class="form"> | ||||
|        {% include "personalni/udaje/prihlaska_field.html" with field=form.jmeno %} | ||||
|        {% include "personalni/udaje/prihlaska_field.html" with field=form.prezdivka_resitele %} | ||||
|        {% include "personalni/udaje/prihlaska_field.html" with field=form.prijmeni %} | ||||
|        {% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%} | ||||
|        {% include "personalni/udaje/prihlaska_field.html" with field=form.email %} | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ Získáváme od Tebe údaje vyplněné v přihlášce do semináře (jméno, př | |||
| Slibujeme Ti, že Tvá osobní data nezneužijeme k ničemu, co by nesouviselo s M&M nebo s dalšími aktivitami Matfyzu, a nikdy je nepředáme nikomu cizímu. Údaje využíváme k zajištění chodu semináře a také je sdílíme s ostatními propagačními akcemi Matfyzu, abychom mohli vyhodnocovat úspěšnost akcí. Pokud budeš mít zájem, budeme Ti také posílat zajímavé zprávy a novinky týkajíci se Matfyzu. | ||||
| </p> | ||||
| <p class="gdpr"> | ||||
| Veřejně vystavujeme pouze výsledkové listiny, které také uchováváme pro archivní účely. Pokud ale z nějakého důvodu nebudeš chtít mít své jméno či školu uvedené ve výsledkové listině, není problém to zařídit, napiš nám. Z tištěných materiálů samozřejmě údaje už odstranit nemůžeme. | ||||
| Veřejně vystavujeme pouze seznam přezdívek (pro výběr spoluřešitelů k řešení) a výsledkové listiny, které také uchováváme pro archivní účely. Pokud ale z nějakého důvodu nebudeš chtít mít své jméno či školu uvedené ve výsledkové listině, není problém to zařídit, napiš nám. Z tištěných materiálů samozřejmě údaje už odstranit nemůžeme. | ||||
| </p> | ||||
| <p class="gdpr"> | ||||
| Na soustředěních a dalších akcích semináře navíc pořizujeme fotografie a videozáznamy a používáme je ke zpravodajským a propagačním účelům. Pro propagační účely si od Tebe vyžádáme samostatný souhlas na začátku akce. | ||||
|  |  | |||
|  | @ -46,6 +46,7 @@ | |||
|         </h4> | ||||
|           <table class="form"> | ||||
|             {% include "personalni/udaje/prihlaska_field.html" with field=form.jmeno %} | ||||
|             {% include "personalni/udaje/prihlaska_field.html" with field=form.prezdivka_resitele %} | ||||
|             {% include "personalni/udaje/prihlaska_field.html" with field=form.prijmeni %} | ||||
|             {% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%} | ||||
|             {% include "personalni/udaje/prihlaska_field.html" with field=form.email %} | ||||
|  |  | |||
|  | @ -160,6 +160,7 @@ def resitelEditView(request): | |||
| 
 | ||||
| 			if resitel_edit: | ||||
| 				## Změny v řešiteli | ||||
| 				resitel_edit.prezdivka_resitele = fcd['prezdivka_resitele'] | ||||
| 				resitel_edit.skola = fcd['skola'] | ||||
| 				resitel_edit.rok_maturity = fcd['rok_maturity'] | ||||
| 				resitel_edit.zasilat = fcd['zasilat'] | ||||
|  | @ -263,6 +264,7 @@ def prihlaskaView(request): | |||
| 					err_logger.warning(f'Zaregistrovala se osoba s kolizním jménem. ID osob: {[o.id for o in kolize]}') | ||||
| 
 | ||||
| 				r = s.Resitel( | ||||
| 					prezdivka_resitele=fcd['prezdivka_resitele'], | ||||
| 					rok_maturity = fcd['rok_maturity'], | ||||
| 					zasilat = fcd['zasilat'], | ||||
| 					zasilat_cislo_emailem = fcd['zasilat_cislo_emailem'] | ||||
|  |  | |||
							
								
								
									
										18
									
								
								seminar/migrations/0110_resitel_prezdivka.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								seminar/migrations/0110_resitel_prezdivka.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | |||
| # Generated by Django 2.2.28 on 2022-11-21 22:07 | ||||
| 
 | ||||
| from django.db import migrations, models | ||||
| 
 | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ('seminar', '0109_hodnoceni_feedback'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.AddField( | ||||
|             model_name='resitel', | ||||
|             name='prezdivka_resitele', | ||||
|             field=models.CharField(blank=True, max_length=256, null=True, unique=True, verbose_name='přezdívka řešitele'), | ||||
|         ), | ||||
|     ] | ||||
|  | @ -211,6 +211,8 @@ class Resitel(SeminarModelBase): | |||
| 	# Interní ID | ||||
| 	id = models.AutoField(primary_key = True) | ||||
| 
 | ||||
| 	prezdivka_resitele = models.CharField('přezdívka řešitele', blank=True, null=True, max_length=256, unique=True) | ||||
| 
 | ||||
| 	osoba = models.OneToOneField(Osoba, blank=False, null=False, verbose_name='osoba', | ||||
| 		on_delete=models.PROTECT) | ||||
| 	 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue