From 972646d8be5e318fac321e11a60aca4903bd9b73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Setni=C4=8Dka?= <setnicka@seznam.cz> Date: Fri, 19 Mar 2021 01:18:55 +0100 Subject: [PATCH] =?UTF-8?q?Score:=20Check=20obodov=C3=A1n=C3=AD=20a=20nahr?= =?UTF-8?q?=C3=A1n=C3=AD=20=C5=99e=C5=A1en=C3=AD=20=C3=BAloh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Scházející body jsou error, scházející oprava jen warning. Řeší #172 Pre-flight check --- mo/score.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/mo/score.py b/mo/score.py index 92ae5044..29f112cb 100644 --- a/mo/score.py +++ b/mo/score.py @@ -7,7 +7,7 @@ from typing import Any, List, Tuple, Optional, Dict, Union import mo.db as db 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: @@ -149,6 +149,23 @@ class Score: self._load_tasks_and_sols(0, round, contest_subq) 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 to_remove = [] for user_id, results in self._results.items(): -- GitLab