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
|
SELECT rocnik FROM seminar_rocniky
|
||||||
WHERE id=(SELECT aktualni_rocnik_id FROM seminar_nastaveni)
|
WHERE id=(SELECT aktualni_rocnik_id FROM seminar_nastaveni)
|
||||||
), id_rocniku AS (
|
), 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
|
WHERE rocnik=(SELECT * FROM akt_rocnik) OR rocnik=(SELECT * FROM akt_rocnik)-1
|
||||||
), id_cisel AS (
|
), id_cisel AS (
|
||||||
SELECT seminar_cisla.id FROM seminar_cisla
|
SELECT seminar_cisla.id FROM seminar_cisla
|
||||||
|
@ -14,12 +14,13 @@ WITH akt_rocnik AS (
|
||||||
SELECT DISTINCT resitel_id FROM seminar_reseni
|
SELECT DISTINCT resitel_id FROM seminar_reseni
|
||||||
INNER JOIN problemy ON problem_id=problemy.id
|
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
|
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
|
UNION
|
||||||
SELECT res.pohlavi_muz,res.jmeno,res.prijmeni,sk.nazev,sk.ulice,sk.mesto,sk.psc,sk.stat
|
SELECT res.pohlavi_muz,res.jmeno,res.prijmeni,sk.nazev,sk.ulice,sk.mesto,sk.psc,sk.stat
|
||||||
FROM seminar_resitele AS res
|
FROM seminar_resitele AS res
|
||||||
INNER JOIN resitele ON res.id=resitel_id
|
INNER JOIN resitele ON res.id=resitel_id
|
||||||
INNER JOIN seminar_skoly AS sk ON sk.id=skola_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