]> git.siccegge.de Git - teilnehmertool.git/commitdiff
bmbf-listen jetzt auch aus teilnehmertool
authorJohannes Schilling <of82ecuq@cip.cs.fau.de>
Thu, 3 Oct 2013 00:20:13 +0000 (02:20 +0200)
committerJohannes Schilling <of82ecuq@cip.cs.fau.de>
Thu, 3 Oct 2013 00:20:13 +0000 (02:20 +0200)
teilnehmertool.py
templates/bmbf-unterschriftenliste.tex [new file with mode: 0644]

index 35a47dca743546e292db999c510e6cd571169a51..a1530c6a8e1433e6b676e1d432c74a3915ac0880 100755 (executable)
@@ -13,7 +13,7 @@ import os.path
 conn = None
 
 
-env = jinja2.Environment(loader=jinja2.FileSystemLoader('templates'))
+env = jinja2.Environment(loader=jinja2.FileSystemLoader('templates', encoding='utf-8'))
 
 def import_teilnehmer(input):
     ids = set([ i[0] for i in conn.execute('SELECT id FROM teilnehmer').fetchall() ])
@@ -29,7 +29,7 @@ def import_teilnehmer(input):
                              row + [0, 0, 0])
 
     conn.commit()
-            
+
 def mark_pay(outdir):
     betrag = int(raw_input("Betrag: "))
 
@@ -131,7 +131,7 @@ def create_remind(outdir='output'):
 
 def create_nametag(outdir='output'):
     template = env.get_template('nametag.svg')
-        
+
     for vorname, nachname, namensschild, hochschule in \
         conn.execute("SELECT vorname, nachname, namensschild, hochschule FROM teilnehmer"):
 
@@ -141,6 +141,27 @@ def create_nametag(outdir='output'):
                                     nick=namensschild.decode('utf-8'),
                                     uni1=hochschule.decode('utf-8')).encode('utf-8'))
 
+def create_bmbf_list(outdir = 'output'):
+    template = env.get_template('bmbf-unterschriftenliste.tex')
+
+
+    teilnehmer = []
+    i = 1
+    for vor, nach, hochschule in \
+        conn.execute("SELECT vorname, nachname, hochschule FROM teilnehmer ORDER BY nachname DESC"):
+
+        vor = vor.decode('utf8')
+        nach = nach.decode('utf8')
+        hochschule = hochschule.decode('utf8')
+
+        teilnehmer.append({'vorname': vor, 'nachname': nach, 'num': i, 'hochschule': hochschule})
+        i = i+1
+
+
+    with open(os.path.join(outdir, "bmbf-unterschriftenliste.tex"), 'w') as out:
+        out.write(template.render(teilnehmer=teilnehmer).encode('utf-8'))
+
+
 def main():
     parser = argparse.ArgumentParser(description="Ultimate Teilnehmertool")
 
@@ -156,7 +177,9 @@ def main():
                        help='Speichere Zahlungseingang')
     group.add_argument('--remind', action='store_true',
                        help='Generiere Zahlungsaufforderungserinnerung')
-    
+    group.add_argument('--bmbf', action='store_true',
+                       help='Generiere BMBF-Unterschriftenliste')
+
     # Argumente
     parser.add_argument('--db', default='teilnehmer.sqlite',
                         help='Teilnehmerdatenbank')
@@ -164,18 +187,20 @@ def main():
                         help='Eingabedatei')
     parser.add_argument('-o', '--output', default='output',
                         help='Ausgabeverzeichnis')
-    
+
     args = parser.parse_args()
 
     global conn
     conn = sqlite3.connect(args.db)
     conn.text_factory = str
+    conn.row_factory = sqlite3.Row
+    conn.execute('pragma encoding = "UTF-8";')
 
-    if args.nametag or args.email or args.pay or args.remind:
+    if args.nametag or args.email or args.pay or args.remind or args.bmbf:
         assert(args.output)
         if not os.path.exists(args.output):
             os.mkdir(args.output)
-            
+
         if args.nametag:
             create_nametag(args.output)
         elif args.email:
@@ -184,6 +209,8 @@ def main():
             mark_pay(args.output)
         elif args.remind:
             create_remind(args.output)
+        elif args.bmbf:
+            create_bmbf_list(args.output)
 
     elif args.importcsv:
         assert(args.input)
@@ -191,4 +218,5 @@ def main():
 
 if __name__ == '__main__':
     main()
-        
+
+# vim: set expandtab :
diff --git a/templates/bmbf-unterschriftenliste.tex b/templates/bmbf-unterschriftenliste.tex
new file mode 100644 (file)
index 0000000..efa97b1
--- /dev/null
@@ -0,0 +1,59 @@
+\documentclass[a4paper,landscape]{scrartcl}
+
+\usepackage[margin=2cm]{geometry}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[ngerman]{babel}
+
+\usepackage{color}
+
+\usepackage{amsmath,amsthm,amssymb}
+\usepackage{mathtools}
+
+\usepackage{array}
+
+\usepackage{ytableau}
+
+\usepackage{enumerate}
+
+\usepackage{fancyhdr}
+\pagestyle{fancy}
+
+\usepackage{booktabs}
+\usepackage{multirow}
+
+\fancyhf{}
+\chead{Unterschriftenliste BMBF}
+\cfoot{}
+
+\usepackage{longtable}
+
+\setlength{\headheight}{28pt}
+\addtolength{\textheight}{-28pt}
+
+\setlength{\parskip}{7pt}
+\setlength{\parindent}{0pt}
+
+%% this took me an hour or so. hope it's worth it
+\DeclareUnicodeCharacter{1ED1}{\resizebox{.80em}{!}{\resizebox{.4em}{!}{\^{o}}\hspace{-1mm}\'{}}\hspace{-1mm}{}}
+
+\begin{document}
+
+\begin{center}
+       \begin{longtable}{|m{.02\textwidth}|m{.15\textwidth}|m{.11\textwidth}|m{.13\textwidth}|m{.03\textwidth}|m{.03\textwidth}|m{.35\textwidth}|}
+       \textbf{Nr.} & \textbf{Name} & \textbf{Vorname} & \textbf{Name der Hochschule} & \multicolumn{2}{|c|}{\textbf{Student}} & \textbf{Unterschrift} \\
+       \hline
+       & & & & ja & nein & \\
+       \hline
+       \hline
+       \endhead
+{% for t in teilnehmer %}
+       \Large {{ t['num'] }} & \Large {{ t['nachname'] }} & \Large {{ t['vorname']
+       }} & \large {{ t['hochschule'] }} & \vspace{2em} & \\
+       \hline
+{% endfor %}
+       \end{longtable}
+\end{center}
+
+\end{document}