Skip to content
Snippets Groups Projects

Sazba diplomů

Merged Martin Mareš requested to merge diplomy into devel
Compare and Show latest version
16 files
+ 263
98
Compare changes
  • Side-by-side
  • Inline

Files

+ 11
3
@@ -14,7 +14,7 @@ from mo.jobs import TheJob, job_handler
import mo.util
from mo.util import logger
import mo.util_format
from mo.util_tex import tex_arg, run_tex, format_hacks
from mo.util_tex import tex_arg, run_tex, format_hacks, QREncoder
def schedule_create_certs(contest: db.Contest, for_user: db.User) -> int:
@@ -53,6 +53,7 @@ class CertMaker:
certs: List[Cert]
out_files: Dict[db.CertType, str]
qr_encoder: QREncoder
def __init__(self, the_job: TheJob):
self.the_job = the_job
@@ -77,6 +78,7 @@ class CertMaker:
self.certs = []
self.out_files = {}
self.qr_encoder = QREncoder(f'{self.job.dir_path()}/qr')
def plan(self) -> None:
sess = db.get_session()
@@ -164,12 +166,15 @@ class CertMaker:
f.write(format_hacks(self.cset.tex_hacks))
for i, cert in enumerate(certs):
qr_url = self._make_qr_url(cert)
qr_file = self.qr_encoder.generate(qr_url)
f.write('\n{\n')
attrs({
'jmeno': cert.user.full_name(),
'skola': cert.school.name,
'uspech': cert.achievement,
'qrurl': self._make_qr_url(cert),
'qrurl': qr_url,
'qrimg': os.path.basename(qr_file),
})
f.write('\\Cert' + cert.type.name.replace('_', '').title() + '\n')
f.write('}\n')
@@ -199,7 +204,10 @@ class CertMaker:
full_dir = os.path.join(certs_dir, out_dir)
os.makedirs(full_dir, exist_ok=True)
# Nejdříve najdeme všechny staré soubory s certifikáty
# Nejdříve smažeme už zbytečné soubory s QR kódy
self.qr_encoder.remove_all()
# Najdeme všechny staré soubory s certifikáty
old_files = [cfile.pdf_file for cfile in sess.query(db.CertFile).filter_by(cert_set_id=self.contest_id).all()]
# Smažeme z DB staré certifikáty
Loading