diff --git a/mo/jobs/certs.py b/mo/jobs/certs.py index 53c77c514f6534317a4464fcdae7f4f0062a681d..a6d90a7329f3b1c0996c5a8b709ebf108cdcc7fe 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]