diff --git a/mo/web/org_contest.py b/mo/web/org_contest.py index 7c2c8198cf8128b291236328e3986d6954165f8e..7c8979a5ad489b39dc7b899788a203685cde81c7 100644 --- a/mo/web/org_contest.py +++ b/mo/web/org_contest.py @@ -787,6 +787,7 @@ class SubmitForm(FlaskForm): note = wtforms.TextAreaField("Poznámka pro účastníka", description="Viditelná účastníkovi po uzavření kola", render_kw={'autofocus': True}) org_note = wtforms.TextAreaField("Interní poznámka", description="Viditelná jen organizátorům") points = mo_fields.Points(description="Účastník po uzavření kola uvidí jen naposledy zadané body", validators=[validators.Optional()]) + is_empty = wtforms.BooleanField("Prázdný protokol (neobsahuje řešení, není hodnocen)", default=False) submit = wtforms.SubmitField('Uložit') file = flask_wtf.file.FileField("Soubor") @@ -890,6 +891,8 @@ def org_submit_list(ct_id: int, user_id: int, task_id: int, site_id: Optional[in if (form.submit_sol.data or form.submit_fb.data) and form.file.data is None: flash('Schází soubor k nahrání, žádné změny nebyly uloženy', 'danger') return redirect(self_url) + if form.is_empty.data: + points = 0 if points: error = mo.util.check_points(points, for_task=ctx.task, for_round=ctx.round) if error: @@ -919,14 +922,16 @@ def org_submit_list(ct_id: int, user_id: int, task_id: int, site_id: Optional[in if sess.is_modified(sol): flash('Změny hodnocení uloženy', 'success') # Points - if points != sol.points: + if points != sol.points or form.is_empty.data != sol.is_empty: sol.points = points + sol.is_empty = form.is_empty.data sess.add(db.PointsHistory( task=ctx.task, participant=sol.user, user=g.user, points_at=mo.now, points=points, + is_empty=sol.is_empty, )) flash('Body uloženy', 'success') # Save changes and commit diff --git a/mo/web/templates/org_submit_list.html b/mo/web/templates/org_submit_list.html index 1cbedf61cd8f07d870f64423f34a339555dd0f30..36544b60ebaf60dc151414730538de1b2fc93940 100644 --- a/mo/web/templates/org_submit_list.html +++ b/mo/web/templates/org_submit_list.html @@ -188,6 +188,7 @@ Existuje více než jedna verze oprav, finální je podbarvená. {{ wtf.form_field(form.note, form_type='horizontal', horizontal_columns=('sm', 2, 10), rows=4)}} {{ wtf.form_field(form.org_note, form_type='horizontal', horizontal_columns=('sm', 2, 10), rows=4 )}} {{ wtf.form_field(form.points, form_type='horizontal', horizontal_columns=('sm', 2, 10) )}} + {{ wtf.form_field(form.is_empty, form_type='horizontal', horizontal_columns=('sm', 2, 10) )}} {{ wtf.form_field( form.submit, form_type='horizontal', class='btn btn-primary', horizontal_columns=('sm', 2, 10), value=action + (' bez nahrání souboru' if allow_upload_feedback or allow_upload_solutions else '')