From ac41d093d63602778428abcd504dd3e122c4c357 Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Fri, 29 Sep 2023 23:06:53 +0200 Subject: [PATCH] =?UTF-8?q?UI:=20Rok=20narozen=C3=AD=20nen=C3=AD=20povinn?= =?UTF-8?q?=C3=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #370 --- bin/register-year | 2 +- mo/users.py | 9 +++------ mo/web/org_contest.py | 2 +- mo/web/org_users.py | 2 +- mo/web/table.py | 2 ++ mo/web/templates/doc_import.html | 2 +- mo/web/templates/org_contest_add_user.html | 2 +- mo/web/templates/org_contest_user.html | 2 +- mo/web/templates/org_user.html | 2 +- mo/web/templates/settings.html | 2 +- mo/web/user.py | 2 +- 11 files changed, 14 insertions(+), 15 deletions(-) diff --git a/bin/register-year b/bin/register-year index 2799b375..1b1da151 100755 --- a/bin/register-year +++ b/bin/register-year @@ -13,7 +13,7 @@ parser.add_argument('--uid', type=int, help='ID uživatele') parser.add_argument('--year', type=int, required=True, help='ročník MO') parser.add_argument('--school', type=str, required=True, help='kód školy') parser.add_argument('--grade', type=str, required=True, help='třída') -parser.add_argument('--birth-year', type=int, required=True, help='rok narození') +parser.add_argument('--birth-year', type=int, help='rok narození') args = parser.parse_args() init_standalone() diff --git a/mo/users.py b/mo/users.py index 685112af..be100b53 100644 --- a/mo/users.py +++ b/mo/users.py @@ -158,11 +158,8 @@ def find_or_create_participant(user: db.User, year: int, school_id: Optional[int school_id = prev_part.school else: raise mo.CheckError('Osoba s daným e-mailem zatím není zaregistrovaná do ročníku, je nutné uvést školu.') - if not birth_year: - if prev_part: - birth_year = prev_part.birth_year - else: - raise mo.CheckError('Osoba s daným e-mailem zatím není zaregistrovaná do ročníku, je nutné uvést rok narození.') + if not birth_year and prev_part: + birth_year = prev_part.birth_year if not grade: raise mo.CheckError('Osoba s daným e-mailem zatím není zaregistrovaná do ročníku, je nutné uvést ročník.') @@ -193,7 +190,7 @@ def find_or_create_participant(user: db.User, year: int, school_id: Optional[int if ((school_id and part.school != school_id) or (grade and part.grade != grade) - or (birth_year and part.birth_year != birth_year)): + or (birth_year is not None and part.birth_year is not None and part.birth_year != birth_year)): raise mo.CheckError('Účastník již zaregistrován s odlišnou školou/ročníkem/rokem narození') return part, is_new diff --git a/mo/web/org_contest.py b/mo/web/org_contest.py index 60c642fd..caf515d4 100644 --- a/mo/web/org_contest.py +++ b/mo/web/org_contest.py @@ -1847,7 +1847,7 @@ class ParticipantAddForm(FlaskForm): last_name = mo_fields.LastName(validators=[validators.Optional()]) school = mo_fields.School(validators=[validators.Optional()]) grade = mo_fields.Grade(validators=[validators.Optional()]) - birth_year = mo_fields.BirthYear(validators=[validators.Optional()]) + birth_year = mo_fields.BirthYear(description='Není povinné uvádět.') participation_place = mo_fields.Place("Kód soutěžního místa") save = wtforms.SubmitField("Přidat") diff --git a/mo/web/org_users.py b/mo/web/org_users.py index 7dc43cd0..8acae46f 100644 --- a/mo/web/org_users.py +++ b/mo/web/org_users.py @@ -572,7 +572,7 @@ def org_user_new(): class ParticipantEditForm(FlaskForm): school = mo_fields.School("Škola", validators=[DataRequired()], render_kw={'autofocus': True}) grade = mo_fields.Grade("Třída", validators=[DataRequired()]) - birth_year = mo_fields.BirthYear("Rok narození", validators=[DataRequired()]) + birth_year = mo_fields.BirthYear("Rok narození") submit = wtforms.SubmitField("Uložit") diff --git a/mo/web/table.py b/mo/web/table.py index a18bd2c6..0ceaf275 100644 --- a/mo/web/table.py +++ b/mo/web/table.py @@ -187,6 +187,8 @@ class Table: val = r.get(c.key) if isinstance(val, Cell): tab.append(val.to_html()) + elif val is None: + tab.append(f'\t<td>') else: tab.append(f'\t<td>{escape(str(val))}') diff --git a/mo/web/templates/doc_import.html b/mo/web/templates/doc_import.html index 023519e5..ee35f372 100644 --- a/mo/web/templates/doc_import.html +++ b/mo/web/templates/doc_import.html @@ -33,7 +33,7 @@ když přidáte vlastní sloupce s novými názvy, budou se ignorovat. Pokud importujete do soutěže v domácím nebo školním kole, můžete kód školy vynechat a doplní se vaše škola. <tr><td><i>rocnik</i><td>Navštěvovaný ročník (třída). Pro základní školy je to číslo od 1 do 9, pro <i>k</i>-tý ročník <i>r</i>-leté střední školy má formát <i>k</i>/<i>r</i>. - <tr><td><i>rok_naroz</i><td>Rok narození + <tr><td>rok_naroz<td>Rok narození (nepovinný, ale doporučujeme uvádět) <tr><td>kod_mista<td>Pokud účastník soutěží někde jinde, je zde uveden kód oblasti, školy, nebo speciálního soutěžního místa, kde se soutěž koná. Dozor na soutěžním místě má pak právo odevzdávat za účastníka řešení. diff --git a/mo/web/templates/org_contest_add_user.html b/mo/web/templates/org_contest_add_user.html index fe181f23..c4dfd50d 100644 --- a/mo/web/templates/org_contest_add_user.html +++ b/mo/web/templates/org_contest_add_user.html @@ -10,7 +10,7 @@ {% block body %} -<p>Jméno, škola, ročník a rok narození nejsou povinné pro již registrované účty.</p> +<p>Jméno, škola, ročník nejsou povinné pro již registrované účty.</p> {{ wtf.quick_form(form, form_type='simple', button_map={'save': 'primary'}) }} diff --git a/mo/web/templates/org_contest_user.html b/mo/web/templates/org_contest_user.html index 91919e04..b70d3de9 100644 --- a/mo/web/templates/org_contest_user.html +++ b/mo/web/templates/org_contest_user.html @@ -35,7 +35,7 @@ <tr><td>E-mail:<td>{{ user.email|mailto }}{{ user|user_flags }} <tr><td>Škola:<td><a href='{{ url_for('org_place', id=pant.school) }}'>{{ pant.school_place.name }}</a> <tr><td>Třída:<td>{{ pant.grade }} - <tr><td>Rok narození:<td>{{ pant.birth_year }} + <tr><td>Rok narození:<td>{{ pant.birth_year|none_value('–') }} <tr><td>Poznámka:<td style="white-space: pre-line;">{{ user.note }} <thead> <tr><th colspan='2'>Účast v kole diff --git a/mo/web/templates/org_user.html b/mo/web/templates/org_user.html index c8ff380b..313a2569 100644 --- a/mo/web/templates/org_user.html +++ b/mo/web/templates/org_user.html @@ -61,7 +61,7 @@ <td>{{ participant.year }} <td><a href="{{ url_for('org_place', id=participant.school) }}">{{ participant.school_place.name }}</a> <td>{{ participant.grade }} - <td>{{ participant.birth_year }} + <td>{{ participant.birth_year|none_value('–') }} <td><div class="btn-group"> <a class="btn btn-xs btn-primary" href="{{ url_for('org_user_participant_edit', user_id=user.user_id, year=participant.year) }}">Editovat</a> <form class="btn-group" method="POST" onsubmit="return confirm('Opravdu nenávratně smazat?')" action='{{ url_for('org_user_participant_delete', user_id=user.user_id, year=participant.year) }}'> diff --git a/mo/web/templates/settings.html b/mo/web/templates/settings.html index 29470c2e..50335f12 100644 --- a/mo/web/templates/settings.html +++ b/mo/web/templates/settings.html @@ -12,7 +12,7 @@ {% if pant %} <tr><th>Škola<td>{{ pant.school_place.name }} <tr><th>Ročník<td>{{ pant.grade }} - <tr><th>Rok narození<td>{{ pant.birth_year }} + <tr><th>Rok narození<td>{{ pant.birth_year|none_value('–') }} {% endif %} </table> diff --git a/mo/web/user.py b/mo/web/user.py index b0673e40..c429c0bb 100644 --- a/mo/web/user.py +++ b/mo/web/user.py @@ -89,7 +89,7 @@ class JoinRoundForm(FlaskForm): town_list = wtforms.HiddenField() grade = mo_fields.Grade("Třída", validators=[DataRequired()]) - birth_year = mo_fields.BirthYear("Rok narození", validators=[DataRequired()]) + birth_year = mo_fields.BirthYear("Rok narození") submit = wtforms.SubmitField('Přihlásit se') -- GitLab