From c47a0c4bc4965e9a1d4a74584a92a871ed175097 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Pracha=C5=99?= <jan.prachar@gmail.com>
Date: Fri, 12 Mar 2021 08:31:25 +0100
Subject: [PATCH] =?UTF-8?q?Rights:=20Funkce,=20kter=C3=A1=20vr=C3=A1t?=
 =?UTF-8?q?=C3=AD=20d=C5=AFvod,=20pro=C4=8D=20se=20nezobrazilo=20zad=C3=A1?=
 =?UTF-8?q?n=C3=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 mo/rights.py | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/mo/rights.py b/mo/rights.py
index 29553db0..d990340e 100644
--- a/mo/rights.py
+++ b/mo/rights.py
@@ -281,6 +281,24 @@ class ContestRights(Rights):
     def can_view_statement(self) -> bool:
         return self._check_view_statement(self.contest.round)
 
+    def cannot_view_statement_reason(self) -> str:
+        round = self.contest.round
+        if round.tasks_file is None:
+            return "zatím chybí"
+        if self.have_right(Right.manage_round):
+            # Správce kola může vždy všechno
+            return ""
+        if self.have_right(Right.view_statement):
+            if round.state == db.RoundState.preparing:
+                return "až začne soutěž"
+            if round.state == db.RoundState.running and round.pr_tasks_start is None:
+                return "až začnou opravy"
+            if mo.now < round.pr_tasks_start:
+                return mo.util_format.timedelta(round.pr_tasks_start)
+        if round.state not in [db.RoundState.grading, db.RoundState.closed]:
+            return "až začnou opravy"
+        return ""
+
 
 class Gatekeeper:
     """Dveřník rozhoduje, jaká práva má uživatel k danému objektu.
-- 
GitLab