diff --git a/mo/web/org_contest.py b/mo/web/org_contest.py
index 7c8979a5ad489b39dc7b899788a203685cde81c7..57c6d5c951ed34bda98877c04f74489ddb7e7fe2 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 dc9619d0852d7d430caed7148ca6a8f69625eef6..83e28d1b21cda86e59821f55c8d8f96cec96f6fa 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.