Skip to content
Snippets Groups Projects

Tabulka Moje soutěže

Closed Jan Prachař requested to merge honza/mr7 into devel
+ 2
23
@@ -208,11 +208,6 @@ class Rights:
# Správce kola může vždy všechno
return True, ""
# Pokud už soutěž skončila, přístup k zadání má každý org.
# XXX: Rozhodujeme podle stavu kola, nikoliv soutěže!
if round.state in [db.RoundState.grading, db.RoundState.closed]:
return True, ""
# Od stanoveného času vidí zadání orgové s právem view_statement.
if (self.have_right(Right.view_statement)):
# Ve zbylých případech jsme konzervativní a zadání neukazujeme
@@ -227,6 +222,8 @@ class Rights:
if round.state not in [db.RoundState.grading, db.RoundState.closed]:
return False, "až začnou opravy"
# Pokud už soutěž skončila, přístup k zadání má každý org.
# XXX: Rozhodujeme podle stavu kola, nikoliv soutěže!
return True, ""
@@ -291,24 +288,6 @@ class ContestRights(Rights):
def can_view_statement_with_reason(self) -> (bool, str):
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.
Loading