From c7fd9fedcc9e8467f9811ba903dbf4c7d8340fd6 Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Sun, 27 Aug 2023 15:41:44 +0200 Subject: [PATCH] =?UTF-8?q?Formul=C3=A1=C5=99=20na=20editaci=20bod=C5=AF?= =?UTF-8?q?=20um=C3=AD=20pr=C3=A1zdn=C3=A9=20protokoly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mo/web/org_contest.py | 8 +++++--- mo/web/templates/parts/org_solution_table.html | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/mo/web/org_contest.py b/mo/web/org_contest.py index 7c8979a5..57c6d5c9 100644 --- a/mo/web/org_contest.py +++ b/mo/web/org_contest.py @@ -1106,7 +1106,6 @@ def org_contest_task(ct_id: int, task_id: int, site_id: Optional[int] = None): changed_sols: List[db.Solution] = [] def update_sol(pion, sol, action, points) -> Optional[str]: - print(f'update_sol: action={action} points={points}') # Aktualizuje řešení, zkontroluje práva a případně vrátí chybovou hlašku. # Vyhýbáme se všemu, co nejde rollbacknout, takže logování do souboru necháme na později. if not sol: @@ -1144,17 +1143,20 @@ def org_contest_task(ct_id: int, task_id: int, site_id: Optional[int] = None): deleted_sols.append(sol) return None - if sol.points != points: - # Chceme změnit počet bodů (po případném založení řešení) + is_empty = (action == 'P') + if sol.points != points or sol.is_empty != is_empty: + # Chceme změnit počet bodů nebo prázdnost protokolu (po případném založení řešení) if not ctx.rights.can_edit_points(): return 'Nemáte právo k zadávání bodů, můžete jen zakládat řešení' sol.points = points + sol.is_empty = is_empty sess.add(db.PointsHistory( task=ctx.task, participant=sol.user, user=g.user, points_at=mo.now, points=points, + is_empty=is_empty, )) changed_sols.append(sol) diff --git a/mo/web/templates/parts/org_solution_table.html b/mo/web/templates/parts/org_solution_table.html index dc9619d0..83e28d1b 100644 --- a/mo/web/templates/parts/org_solution_table.html +++ b/mo/web/templates/parts/org_solution_table.html @@ -25,7 +25,8 @@ Zde můžete bodovat odevzdaná řešení. Zde můžete zakládat a rušit odevzdaná řešení. {% endif %} Prázdná hodnota ve sloupečku „Přidělené body“ znamená „neobodováno“, -hodnota X znamená „řešení nebylo odevzdáno“. +hodnota X znamená „řešení nebylo odevzdáno“, +P znamená „prázdný protokol, který neobsahuje řešení“. {% if edit_create %} Smazáním X založíte nové řešení – to se hodí, pokud se nechystáte do systému nahrávat soubory řešení, ale jen chcete řešení vytvořit, aby jim bylo možné vyplnit body. -- GitLab