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')
|
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)
|
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)
|
prijmeni = forms.CharField(label='Příjmení', max_length=256, required=True)
|
||||||
pohlavi_muz = forms.ChoiceField(label='Pohlaví',
|
pohlavi_muz = forms.ChoiceField(label='Pohlaví',
|
||||||
choices = ((True,'muž'),(False,'žena')), required=True)
|
choices = ((True,'muž'),(False,'žena')), required=True)
|
||||||
|
@ -105,6 +106,17 @@ class PrihlaskaForm(PasswordResetForm):
|
||||||
pass
|
pass
|
||||||
return email
|
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):
|
def clean_zasilat(self):
|
||||||
zasilat = self.cleaned_data.get('zasilat')
|
zasilat = self.cleaned_data.get('zasilat')
|
||||||
ulice = self.cleaned_data.get('ulice')
|
ulice = self.cleaned_data.get('ulice')
|
||||||
|
@ -138,6 +150,7 @@ class ProfileEditForm(forms.Form):
|
||||||
disabled=True)
|
disabled=True)
|
||||||
|
|
||||||
jmeno = forms.CharField(label='Jméno', max_length=256, required=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)
|
prijmeni = forms.CharField(label='Příjmení', max_length=256, required=True)
|
||||||
pohlavi_muz = forms.ChoiceField(label='Pohlaví',
|
pohlavi_muz = forms.ChoiceField(label='Pohlaví',
|
||||||
choices = ((True,'muž'),(False,'žena')), required=True)
|
choices = ((True,'muž'),(False,'žena')), required=True)
|
||||||
|
@ -190,6 +203,18 @@ class ProfileEditForm(forms.Form):
|
||||||
# pass
|
# pass
|
||||||
# return username
|
# 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):
|
def clean_email(self):
|
||||||
err_logger = logging.getLogger('seminar.prihlaska.problem')
|
err_logger = logging.getLogger('seminar.prihlaska.problem')
|
||||||
email = self.cleaned_data.get('email')
|
email = self.cleaned_data.get('email')
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
</h4>
|
</h4>
|
||||||
<table class="form">
|
<table class="form">
|
||||||
{% include "personalni/udaje/prihlaska_field.html" with field=form.jmeno %}
|
{% 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.prijmeni %}
|
||||||
{% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%}
|
{% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%}
|
||||||
{% include "personalni/udaje/prihlaska_field.html" with field=form.email %}
|
{% 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.
|
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>
|
||||||
<p class="gdpr">
|
<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>
|
||||||
<p class="gdpr">
|
<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.
|
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>
|
</h4>
|
||||||
<table class="form">
|
<table class="form">
|
||||||
{% include "personalni/udaje/prihlaska_field.html" with field=form.jmeno %}
|
{% 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.prijmeni %}
|
||||||
{% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%}
|
{% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%}
|
||||||
{% include "personalni/udaje/prihlaska_field.html" with field=form.email %}
|
{% include "personalni/udaje/prihlaska_field.html" with field=form.email %}
|
||||||
|
|
|
@ -160,6 +160,7 @@ def resitelEditView(request):
|
||||||
|
|
||||||
if resitel_edit:
|
if resitel_edit:
|
||||||
## Změny v řešiteli
|
## Změny v řešiteli
|
||||||
|
resitel_edit.prezdivka_resitele = fcd['prezdivka_resitele']
|
||||||
resitel_edit.skola = fcd['skola']
|
resitel_edit.skola = fcd['skola']
|
||||||
resitel_edit.rok_maturity = fcd['rok_maturity']
|
resitel_edit.rok_maturity = fcd['rok_maturity']
|
||||||
resitel_edit.zasilat = fcd['zasilat']
|
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]}')
|
err_logger.warning(f'Zaregistrovala se osoba s kolizním jménem. ID osob: {[o.id for o in kolize]}')
|
||||||
|
|
||||||
r = s.Resitel(
|
r = s.Resitel(
|
||||||
|
prezdivka_resitele=fcd['prezdivka_resitele'],
|
||||||
rok_maturity = fcd['rok_maturity'],
|
rok_maturity = fcd['rok_maturity'],
|
||||||
zasilat = fcd['zasilat'],
|
zasilat = fcd['zasilat'],
|
||||||
zasilat_cislo_emailem = fcd['zasilat_cislo_emailem']
|
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
|
# Interní ID
|
||||||
id = models.AutoField(primary_key = True)
|
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',
|
osoba = models.OneToOneField(Osoba, blank=False, null=False, verbose_name='osoba',
|
||||||
on_delete=models.PROTECT)
|
on_delete=models.PROTECT)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue