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