From ae315d27f6106ad3046ebe25ee2b9974fe1898f0 Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Sun, 9 Feb 2025 11:14:10 +0100 Subject: [PATCH] =?UTF-8?q?Diplomy:=20Zobecn=C4=9Bno=20hled=C3=A1n=C3=AD?= =?UTF-8?q?=20standardn=C3=ADho=20pozad=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mo/jobs/certs.py | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/mo/jobs/certs.py b/mo/jobs/certs.py index 53c77c51..a6d90a73 100644 --- a/mo/jobs/certs.py +++ b/mo/jobs/certs.py @@ -41,6 +41,21 @@ class BackgroundType(db.MOEnum): def friendly_name(self) -> str: return background_type_names[self] + def find_default_background(self, round: db.Round) -> Optional[str]: + bg = self.name + certs_dir = mo.util.data_dir('certs') + candidates = [ + f'{round.round_code()}/bg-{bg}.pdf', + f'bg-{bg}.pdf', + ] + + for cand in candidates: + bg = os.path.join(certs_dir, cand) + if os.path.isfile(bg): + return bg + + return None + background_type_names = { BackgroundType.standard: "standardní", @@ -217,18 +232,11 @@ class CertMaker: elif bgt == BackgroundType.blank: return None - bg = bgt.name - candidates = [ - f'{self.round.round_code()}/bg-{bg}.pdf', - f'bg-{bg}.pdf', - ] - - for cand in candidates: - bg = os.path.join(self.certs_dir, cand) - if os.path.isfile(bg): - return bg - - raise RuntimeError("Nemohu najít standardní pozadí (kandidáti: " + " ".join(candidates) + ")") + bg = bgt.find_default_background(self.round) + if bg is not None: + return bg + else: + raise RuntimeError("Nemohu najít standardní pozadí") def make_certs(self, cert_type: db.CertType) -> None: certs = [cert for cert in self.certs if cert.type == cert_type] -- GitLab