Dokonceni obalek.
- jsou v samostatne slozce - negeneruji se pro odmaturovane
This commit is contained in:
parent
b6f1cc11a2
commit
4f0d2cdc9a
4 changed files with 1738 additions and 4 deletions
1603
obalky/lisak.eps
Normal file
1603
obalky/lisak.eps
Normal file
File diff suppressed because it is too large
Load diff
78
obalky/obalky-template.tex
Normal file
78
obalky/obalky-template.tex
Normal file
|
@ -0,0 +1,78 @@
|
|||
\input czech.sty
|
||||
\input epsf
|
||||
\special{landscape}
|
||||
\nopagenumbers
|
||||
\hoffset=-1in
|
||||
\voffset=-1in
|
||||
\advance\voffset by 0.9cm
|
||||
%nove pridano, aby to fungovalo...
|
||||
\advance\hoffset by 6.5cm
|
||||
\hsize=22cm
|
||||
\vsize=16cm
|
||||
|
||||
\font\adrfonta=csssbx10 at 14pt
|
||||
\font\adrfontb=csssbx10 at 12pt
|
||||
\font\adrfontc=csss12
|
||||
\font\tofont=csr12 at 16pt
|
||||
|
||||
\newdimen\fromskip
|
||||
\newdimen\toskip
|
||||
\fromskip=4.35cm
|
||||
\toskip=13.2cm
|
||||
|
||||
\def\first{\relax}
|
||||
|
||||
\catcode`_=13
|
||||
%\catcode`_=12
|
||||
|
||||
\def_{$\_$}
|
||||
|
||||
\advance\voffset by 2.5cm
|
||||
|
||||
|
||||
\def\obalka#1#2#3#4#5#6#7{
|
||||
|
||||
\def\jmeno{#1}
|
||||
\def\prijm{#2}
|
||||
\def\skola{#3}
|
||||
\def\popis{}
|
||||
\def\first{}
|
||||
\def\ulice{#4}
|
||||
\def\PSC{#5}
|
||||
\def\mesto{#6}
|
||||
\def\stat{#7}
|
||||
\vskip-4mm\vbox to 0pt{\hbox to 0pt{\hskip1.4cm\epsfysize=2.55cm\epsfbox{lisak.eps}\hss}\vss}
|
||||
|
||||
\baselineskip=13pt
|
||||
\parindent=\fromskip
|
||||
\line{\indent\adrfonta Časopis M\&M,\hfil}
|
||||
\vskip3pt
|
||||
\line{\indent\adrfontb OVVP UK MFF\hfil}
|
||||
\vskip3pt
|
||||
\line{\indent\adrfontc Ke Karlovu 3, 121 16 Praha 2\hfil}
|
||||
\line{\indent\adrfontc Tel.: +420 221 911 235\hss}
|
||||
\line{\indent\adrfontc mam@atrey.karlin.mff.cuni.cz\hfil}
|
||||
|
||||
\vskip6.15cm
|
||||
\vbox to 0pt{\parindent=1.4cm\hsize=\toskip\advance\hsize by -1cm
|
||||
\vbox to 60pt{\vfil} \popis\vss}
|
||||
\parindent=\toskip
|
||||
\baselineskip=18pt
|
||||
\line{\indent\tofont\first\hfil}
|
||||
\line{\indent\tofont\jmeno\ \prijm\hfil}
|
||||
\ifx \skola \empty
|
||||
{}
|
||||
\else
|
||||
\line{\indent\tofont\skola\hfil}
|
||||
\fi
|
||||
\line{\indent\tofont\ulice\hfil}
|
||||
\line{\tofont\item{\PSC} \mesto\hfil}
|
||||
\vskip5pt
|
||||
\line{\indent\tofont\stat\hfil}
|
||||
|
||||
\vfil\eject
|
||||
}
|
||||
|
||||
%\obalka{Lenka}{Kopfová}{Leknínová 10}{746 01}{Opava}
|
||||
|
||||
|
52
obalky/obalky.py
Executable file
52
obalky/obalky.py
Executable file
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
import psycopg2
|
||||
import sys
|
||||
import subprocess
|
||||
import re
|
||||
|
||||
dbname="mam-prod"
|
||||
user="mam"
|
||||
|
||||
conn = psycopg2.connect("dbname={0} user={1}".format(dbname,user))
|
||||
cur = conn.cursor()
|
||||
|
||||
names = []
|
||||
|
||||
with open("obalky.sql") as qfile, open("obalky-template.tex") as texheader, open("obalky.tex","w") as texout :
|
||||
texout.write(texheader.read())
|
||||
cur.execute(qfile.read())
|
||||
for row in cur.fetchall():
|
||||
(muz,jmeno,prijmeni,skola,ulice,mesto,psc,stat)=row
|
||||
if (stat=='CZ'):
|
||||
stat = ""
|
||||
elif (stat=='SK'):
|
||||
stat = "Slovenská republika"
|
||||
else:
|
||||
print("Neznamy stat: {}\n".format(stat))
|
||||
if (skola==None):
|
||||
skola=""
|
||||
psc = psc.replace(" ","")
|
||||
psc = psc[0:3]+" "+psc[3:]
|
||||
|
||||
texout.write("\\obalka{{{0}}}{{{1}}}{{{2}}}{{{3}}}{{{4}}}{{{5}}}{{{6}}}\n".format(jmeno,prijmeni,skola,ulice,psc,mesto,stat))
|
||||
names.append((jmeno,prijmeni))
|
||||
texout.write("\\bye\n")
|
||||
|
||||
cur.close()
|
||||
conn.close()
|
||||
|
||||
print("Spoustim csplain ...")
|
||||
output = subprocess.check_output(["csplain","obalky.tex"],stderr=subprocess.STDOUT)
|
||||
page = 0
|
||||
for line in output.decode("utf-8").splitlines():
|
||||
pmatch = re.search("\[([0-9]+)\]",line)
|
||||
if pmatch:
|
||||
page = int(pmatch.group(1))
|
||||
errmatch = re.match("Overfull",line)
|
||||
if errmatch:
|
||||
print("Preteceni na strane",page,"u osoby",names[page][0],names[page][1])
|
||||
|
||||
print("Spoustim dvipdf ...")
|
||||
subprocess.call(["dvipdf","obalky.dvi"])
|
||||
print("Hotovo.")
|
|
@ -2,7 +2,7 @@ WITH akt_rocnik AS (
|
|||
SELECT rocnik FROM seminar_rocniky
|
||||
WHERE id=(SELECT aktualni_rocnik_id FROM seminar_nastaveni)
|
||||
), id_rocniku AS (
|
||||
SELECT id FROM seminar_rocniky
|
||||
SELECT id,prvni_rok FROM seminar_rocniky
|
||||
WHERE rocnik=(SELECT * FROM akt_rocnik) OR rocnik=(SELECT * FROM akt_rocnik)-1
|
||||
), id_cisel AS (
|
||||
SELECT seminar_cisla.id FROM seminar_cisla
|
||||
|
@ -14,12 +14,13 @@ WITH akt_rocnik AS (
|
|||
SELECT DISTINCT resitel_id FROM seminar_reseni
|
||||
INNER JOIN problemy ON problem_id=problemy.id
|
||||
)
|
||||
SELECT pohlavi_muz,jmeno,prijmeni,NULL,ulice,mesto,psc,stat FROM seminar_resitele
|
||||
SELECT pohlavi_muz,jmeno,prijmeni,NULL AS skola,ulice,mesto,psc,stat FROM seminar_resitele
|
||||
INNER JOIN resitele ON seminar_resitele.id=resitel_id
|
||||
WHERE zasilat='domu'
|
||||
WHERE zasilat='domu' AND rok_maturity > (SELECT MAX(prvni_rok) FROM id_rocniku)
|
||||
UNION
|
||||
SELECT res.pohlavi_muz,res.jmeno,res.prijmeni,sk.nazev,sk.ulice,sk.mesto,sk.psc,sk.stat
|
||||
FROM seminar_resitele AS res
|
||||
INNER JOIN resitele ON res.id=resitel_id
|
||||
INNER JOIN seminar_skoly AS sk ON sk.id=skola_id
|
||||
WHERE zasilat='do_skoly'
|
||||
WHERE zasilat='do_skoly' AND rok_maturity > (SELECT MAX(prvni_rok) FROM id_rocniku)
|
||||
ORDER BY prijmeni ASC, jmeno ASC
|
Loading…
Reference in a new issue