From 805571f251ec9856deee39a05f8bbed4f0e21c21 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Sun, 9 Feb 2025 21:32:41 +0100
Subject: [PATCH] =?UTF-8?q?Diplomy/sazba:=20P=C5=99ed=C3=A1v=C3=A1me=20i?=
=?UTF-8?q?=20ID=20v=C3=BDsledkov=C3=A9=20listiny,=20podle=20kter=C3=A9=20?=
=?UTF-8?q?vyd=C3=A1vat?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mo/jobs/certs.py | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/mo/jobs/certs.py b/mo/jobs/certs.py
index a6d90a73..0900537e 100644
--- a/mo/jobs/certs.py
+++ b/mo/jobs/certs.py
@@ -19,7 +19,7 @@ import mo.util_format
from mo.util_tex import tex_arg, tex_key, run_tex, format_hacks, QREncoder
-def schedule_create_certs(contest: db.Contest, for_user: db.User) -> int:
+def schedule_create_certs(contest: db.Contest, scoretable_id: Optional[int], for_user: db.User) -> int:
place = contest.place
the_job = TheJob()
@@ -27,6 +27,7 @@ def schedule_create_certs(contest: db.Contest, for_user: db.User) -> int:
job.description = f'Diplomy {contest.round.round_code()} {place.name_locative()}'
job.in_json = {
'contest_id': contest.contest_id,
+ 'scoretable_id': scoretable_id,
}
the_job.submit()
assert the_job.job_id is not None
@@ -141,18 +142,27 @@ class CertMaker:
walker = Walker(self.job.in_json)
with walker.enter_object() as root:
self.contest_id = root['contest_id'].as_int()
+ if root['scoretable_id'].is_null():
+ scoretable_id = None
+ else:
+ scoretable_id = root['scoretable_id'].as_int()
sess = db.get_session()
self.contest = (sess.query(db.Contest)
.options(joinedload(db.Contest.round))
.options(joinedload(db.Contest.place))
- .options(joinedload(db.Contest.scoretable))
.get(self.contest_id)
)
assert self.contest is not None
self.round = self.contest.round
self.place = self.contest.place
- self.scoretable = self.contest.scoretable
+ logger.info(f'{self.the_job.log_prefix} Vytvářím certifikáty pro soutěž #{self.contest.contest_id} s výsledkovou listinou #{scoretable_id}')
+
+ if scoretable_id is not None:
+ self.scoretable = sess.query(db.ScoreTable).get(scoretable_id)
+ assert self.scoretable is not None
+ else:
+ self.scoretable = None
self.cset = sess.query(db.CertSet).get(self.contest_id)
assert self.cset is not None
--
GitLab