diff --git a/mo/web/jinja.py b/mo/web/jinja.py index 0e786a08965c4baeff8cf2b7e9f933d13ee20cac..893ac8ca01a617687a00fc49f20498b8843d7c73 100644 --- a/mo/web/jinja.py +++ b/mo/web/jinja.py @@ -72,6 +72,11 @@ def or_dash(s: Any) -> str: return str(s) if s else '–' +@app.template_filter() +def none_value(s: Any, none_value: Any) -> Any: + return none_value if s is None else s + + @app.template_filter() def json_pretty(js: Any) -> str: return json.dumps(js, sort_keys=True, indent=4, ensure_ascii=False) diff --git a/mo/web/org_round.py b/mo/web/org_round.py index 7e86f508f75e4886a3b6b5b76889140678c98dec..b66650966c95f99f263246704bfdd8043753c168 100644 --- a/mo/web/org_round.py +++ b/mo/web/org_round.py @@ -8,6 +8,7 @@ from typing import Optional, Tuple import werkzeug.exceptions import wtforms from wtforms import validators +from wtforms.fields.html5 import IntegerField import mo import mo.db as db @@ -360,6 +361,15 @@ class RoundEditForm(FlaskForm): pr_tasks_start = MODateTimeField("Čas zveřejnění úloh pro dozor", validators=[validators.Optional()]) ct_submit_end = MODateTimeField("Konec odevzdávání pro účastníky", validators=[validators.Optional()]) pr_submit_end = MODateTimeField("Konec odevzdávání pro dozor", validators=[validators.Optional()]) + score_mode = wtforms.SelectField("Výsledková listina", choices=db.RoundScoreMode.choices(), coerce=db.RoundScoreMode.coerce) + score_winner_limit = IntegerField( + "Hranice bodů pro vítěze", validators=[validators.Optional()], + description="Řešitelé s alespoň tolika body budou označeni za vítěze, prázdná hodnota = žádné neoznačovat", + ) + score_successful_limit = IntegerField( + "Hranice bodů pro úspěšné řešitele", validators=[validators.Optional()], + description="Řešitelé s alespoň tolika body budou označeni za úspěšné řešitele, prázdná hodnota = žádné neoznačovat", + ) submit = wtforms.SubmitField('Uložit') diff --git a/mo/web/templates/org_round.html b/mo/web/templates/org_round.html index 9f6d685c9e13769ad89564da968fed8236a2dced..678a29209b41a099d4af898e38f81e0df83efff9 100644 --- a/mo/web/templates/org_round.html +++ b/mo/web/templates/org_round.html @@ -30,6 +30,9 @@ {% else %} – {% endif %} + <tr><td>Výsledková listina<td>{{ round.score_mode.friendly_name() }} + <tr><td>Hranice bodů pro vítěze<td>{{ round.score_winner_limit|none_value(Markup('<i>nenastaveno</i>')) }} + <tr><td>Hranice bodů pro úspěšné řešitele<td>{{ round.score_successful_limit|none_value(Markup('<i>nenastaveno</i>')) }} </table> <div class="btn-group">