Skip to content
Snippets Groups Projects
Commit 972646d8 authored by Jiří Setnička's avatar Jiří Setnička
Browse files

Score: Check obodování a nahrání řešení úloh

Scházející body jsou error, scházející oprava jen warning.

Řeší #172 Pre-flight check
parent 66b03d34
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ from typing import Any, List, Tuple, Optional, Dict, Union ...@@ -7,7 +7,7 @@ from typing import Any, List, Tuple, Optional, Dict, Union
import mo.db as db import mo.db as db
from mo.util import normalize_grade from mo.util import normalize_grade
from mo.util_format import inflect_with_number from mo.util_format import inflect_number, inflect_with_number
class ScoreOrder: class ScoreOrder:
...@@ -149,6 +149,23 @@ class Score: ...@@ -149,6 +149,23 @@ class Score:
self._load_tasks_and_sols(0, round, contest_subq) self._load_tasks_and_sols(0, round, contest_subq)
self._mark_winners() self._mark_winners()
# Kontrola řešení
missing_points = {task_id: 0 for task_id in self._tasks[0].keys()}
missing_feedbacks = {task_id: 0 for task_id in self._tasks[0].keys()}
total_counts = {task_id: 0 for task_id in self._tasks[0].keys()}
for result in self._results.values():
for sol in result._sols[0].values():
total_counts[sol.task_id] += 1
if sol.points is None:
missing_points[sol.task_id] += 1
if sol.final_feedback is None:
missing_feedbacks[sol.task_id] += 1
for t in self.get_tasks():
if missing_points[t.task_id] > 0:
self._add_message("error", f"{t.code} – schází zadané body u {missing_points[t.task_id]} řešení z {total_counts[t.task_id]}")
if missing_feedbacks[t.task_id] > 0:
self._add_message("warning", f"{t.code} – schází nahraná oprava u {missing_feedbacks[t.task_id]} řešení z {total_counts[t.task_id]}")
# Vynecháme účastníky, kteří nic neodevzdali # Vynecháme účastníky, kteří nic neodevzdali
to_remove = [] to_remove = []
for user_id, results in self._results.items(): for user_id, results in self._results.items():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment