+ with open(os.path.join(outdir, "packliste.tex"), 'w') as out:
+ out.write(template_pack.render(teilnehmer=teilnehmer).encode('utf-8'))
+
+ with open(os.path.join(outdir, "teilnehmer-strichliste.tex"), 'w') as out:
+ out.write(template_strichliste.render(teilnehmer=teilnehmer, helfer=helfer).encode('utf-8'))
+
+
+def create_teilnehmer_quittungen(output='quittungen'):
+ create_teilnehmer_list(output, only_quittung=True)
+
+
+def create_bmbf_list(outdir = 'output'):
+ template = env.get_template('bmbf-unterschriftenliste.tex')
+
+
+ teilnehmer = []
+ i = 1
+ for vor, nach, hochschule, dochned in \
+ conn.execute("SELECT vorname, nachname, hochschule, dochned FROM teilnehmer ORDER BY UPPER(nachname) ASC, UPPER (vorname) ASC"):
+
+ vor = vor.decode('utf8')
+ nach = nach.decode('utf8')
+ hochschule = hochschule.decode('utf8')
+
+ if dochned != "false":
+ continue
+
+ if hochschule == "Privat" :
+ continue
+
+ 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 list_teilnehmer_ids():
+ for tid, dochned in conn.execute("SELECT id, dochned FROM teilnehmer ORDER BY id ASC"):
+ if dochned == "false":
+ print tid
+
+
+def main():
+ parser = argparse.ArgumentParser(description="Ultimate Teilnehmertool")
+
+ # Modus
+ group = parser.add_mutually_exclusive_group(required=True)
+ group.add_argument('--importcsv', action='store_true',
+ help='Importiere neue Teilnehmer aus CSV')
+ group.add_argument('--nametag', action='store_true',
+ help='Generiere Nametags')
+ group.add_argument('--email', action='store_true',
+ help='Generiere E-Mails mit Überweisungsinformationen')
+ group.add_argument('--pay', action='store_true',
+ help='Speichere Zahlungseingang')
+ group.add_argument('--remind', action='store_true',
+ help='Generiere Zahlungsaufforderungserinnerung')
+ group.add_argument('--bmbf', action='store_true',
+ help='Generiere BMBF-Unterschriftenliste')
+ group.add_argument('--liste', action='store_true',
+ help='Generiere Teilnehmerübersichtsliste')
+ group.add_argument('--helfer', action='store_true',
+ help='Generiere Helfer-Nametags aus helfer.csv')
+ group.add_argument('--quittungen', action='store_true',
+ help='Generiere Quittungen für Teilnehmer')
+ group.add_argument('--ids', action='store_true',
+ help='Liste alle Teilnehmerids auf, die sich nicht abgemeldet haben')
+
+ # Argumente
+ parser.add_argument('--db', default='teilnehmer.sqlite',
+ help='Teilnehmerdatenbank')
+ parser.add_argument('-i', '--input',
+ 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 or args.bmbf or \
+ args.liste or args.helfer or args.quittungen or args.ids:
+ assert(args.output)
+ if not os.path.exists(args.output):
+ os.mkdir(args.output)
+
+ if args.nametag:
+ create_nametag(args.output)
+ elif args.email:
+ create_mail(args.output)
+ elif args.pay:
+ mark_pay(args.output)
+ elif args.remind:
+ create_remind(args.output)
+ elif args.bmbf:
+ create_bmbf_list(args.output)
+ elif args.liste:
+ create_teilnehmer_list(args.output)
+ elif args.helfer:
+ assert(args.input)
+ create_helfer_nametags(args.input, args.output)
+ elif args.quittungen:
+ create_teilnehmer_quittungen(args.output)
+ elif args.ids:
+ list_teilnehmer_ids()
+
+ elif args.importcsv:
+ assert(args.input)
+ import_teilnehmer(args.input)