From 6b1a08ffe4ea6d4770686fe06130b6fa4801c25a Mon Sep 17 00:00:00 2001 From: Johannes Schilling Date: Sun, 27 Oct 2013 17:31:09 +0100 Subject: [PATCH] helfer_nametags semi-automagisch bauen. bitte wegschauen dass die veranstaltungsleiter hardcoded sind --- teilnehmertool.py | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/teilnehmertool.py b/teilnehmertool.py index bda2774..962ae77 100755 --- a/teilnehmertool.py +++ b/teilnehmertool.py @@ -12,6 +12,8 @@ import os.path import re import sys +import csv + conn = None @@ -37,6 +39,34 @@ def escape_tex(value): env.filters['escape_tex'] = escape_tex +## dont judge me. i don't see any good way sadly +VERANSTALTUNGSLEITER = { + } + +def is_veranstaltungsleiter(row): + if VERANSTALTUNGSLEITER.has_key(row['username']): + return True + return False + + +def create_helfer_nametags(csvpath, outdir='helfer_nametags'): + template = env.get_template('nametag.svg') + + with open(csvpath, 'r') as csvfile: + csvreader = csv.DictReader(csvfile, delimiter=',', quotechar='"') + + for row in csvreader: + if is_veranstaltungsleiter(row): + nick = "%s %s" % (VERANSTALTUNGSLEITER[row['username']][0], VERANSTALTUNGSLEITER[row['username']][1]) + uni = "Veranstaltungsleiter" + else: + nick = "%s" % (row['username']) + uni = "FAU Erlangen" + + with open(os.path.join(outdir, "%s.svg" % nick), 'w') as f: + f.write(template.render(nick=nick.decode('utf-8'), uni=uni.decode('utf-8')).encode('utf-8')) + + def import_teilnehmer(input): ids = set([ i[0] for i in conn.execute('SELECT id FROM teilnehmer').fetchall() ]) @@ -248,6 +278,8 @@ def main(): 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') # Argumente parser.add_argument('--db', default='teilnehmer.sqlite', @@ -265,7 +297,8 @@ def main(): 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: + if args.nametag or args.email or args.pay or args.remind or args.bmbf or \ + args.liste or args.helfer: assert(args.output) if not os.path.exists(args.output): os.mkdir(args.output) @@ -282,6 +315,9 @@ def main(): 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.importcsv: assert(args.input) -- 2.39.5