From f2c19a28c2ed0a37deca6addeb11acebe76572e3 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Sun, 9 Jan 2022 22:52:56 +0100
Subject: [PATCH] =?UTF-8?q?parse=5Fpoints=20na=20None=20vr=C3=A1t=C3=AD=20?=
 =?UTF-8?q?tak=C3=A9=20None?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Může nastat při vyplňování bodů do formulářů.
---
 mo/util.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/mo/util.py b/mo/util.py
index dab552fb..c3f08738 100644
--- a/mo/util.py
+++ b/mo/util.py
@@ -136,16 +136,16 @@ def normalize_grade(grade: str) -> int:
 
 
 def parse_points(
-    raw_points: str, for_task: Optional[db.Task] = None, for_round: Optional[db.Round] = None,
+    raw_points: Optional[str], for_task: Optional[db.Task] = None, for_round: Optional[db.Round] = None,
 ) -> Tuple[Optional[decimal.Decimal], Optional[str]]:
     """Naparsuje a zkontroluje body. Vrátí body (jako decimal.Decimal nebo None
     při prázdných bodech) a případný error (None pokud nenastal, jinak text chyby)."""
-    if raw_points == "":
+    if not raw_points or raw_points == "":
         return None, None
     try:
         points = decimal.Decimal(raw_points.replace(',', '.'))
     except decimal.InvalidOperation:
-        return 0, f"Hodnota '{raw_points}' není číslo"
+        return decimal.Decimal(0), f"Hodnota '{raw_points}' není číslo"
 
     return points, check_points(points, for_task, for_round)
 
-- 
GitLab