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