From 81e624b4a091e08e02bf0eec5784f1a1f02e6ddc Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Mon, 1 Mar 2021 16:07:06 +0100
Subject: [PATCH] =?UTF-8?q?mo.score:=20Vynech=C3=A1v=C3=A1me=20=C3=BA?=
 =?UTF-8?q?=C4=8Dastn=C3=ADky=20bez=20odevzdan=C3=BDch=20=C5=99e=C5=A1en?=
 =?UTF-8?q?=C3=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 mo/score.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/mo/score.py b/mo/score.py
index 4a0cd6da..bfa4c626 100644
--- a/mo/score.py
+++ b/mo/score.py
@@ -7,6 +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
 
 
 class ScoreOrder:
@@ -145,6 +146,18 @@ class Score:
         self._load_tasks_and_sols(0, round, contest_subq)
         self._mark_winners()
 
+        # Vynecháme účastníky, kteří nic neodevzdali
+        to_remove = []
+        for user_id, results in self._results.items():
+            if not results._sols[0]:
+                to_remove.append(user_id)
+        if to_remove:
+            self._add_message('info',
+                inflect_with_number(len(to_remove), 'Vynechán %s soutěžící', 'Vynecháni %s soutěžící', 'Vynecháno %s soutěžících')
+                + ' bez odevzdaných řešení.')
+            for user_id in to_remove:
+                self._results.pop(user_id)
+
     def _load_tasks_and_sols(self, step: int, round: db.Round, contest_subq: Union[Query, List[int]]):
         """Obecná funkce na načtení úloh a řešení tohoto nebo předchozího kola"""
         if step in self._tasks:
-- 
GitLab