--- /dev/null
+Copyright (c) 2013 Christoph Egger
+Copyright (c) 2013 Johannes Schilling
+Copyright (c) 2013 Sebastian Ehrenfels
+Copyright (c) 2013 Matthias Wirth
+
+Permission to use, copy, modify, and/or distribute this software for
+any purpose with or without fee is hereby granted, provided that the
+above copyright notice and this permission notice appear in all
+copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
--- /dev/null
+CREATE TABLE 'teilnehmer' (
+ id INTEGER,
+ vorname TEXT,
+ nachname TEXT,
+ email TEXT,
+ namensschild TEXT,
+ hochschule TEXT,
+ public_comment TEXT,
+ private_comment TEXT,
+ essen TEXT,
+ alergien TEXT,
+ zug BOOLEAN,
+ tshirt TEXT,
+ zipper TEXT,
+ angelegt DATETIME,
+ aktualisiert DATETIME
+);
+
+ALTER TABLE teilnehmer ADD COLUMN emailsent BOOLEAN default 0;
+ALTER TABLE teilnehmer ADD COLUMN bezahlt INTEGER default 0;
+ALTER TABLE teilnehmer ADD COLUMN betrag INTEGER default NULL;
\ No newline at end of file
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+import sqlite3
+import string
+import jinja2
+import os
+import os.path
+
+conn = sqlite3.connect('teilnehmer.sqlite')
+conn.text_factory = str
+
+env = jinja2.Environment(loader=jinja2.FileSystemLoader('templates'))
+
+def create_mail():
+ def gen_rechnung(tshirt, zipper):
+ preis = 25
+ kosten = u""
+ kosten += u"%s | %s\n" % (u" Konferenzbeitrag".ljust(30), "25.00")
+ kosten += u"%s | %s\n" % ((u" T-Shirt (Größe %s)" % tshirt).ljust(30), " 0.00")
+ if zipper != 'Kein Pulli':
+ kosten += u"%s | %s\n" % ((u" Kapuzenzipper (Größe %s)" % zipper).ljust(30), "25.00")
+ preis += 25
+ kosten += ' '*2 + 29*'-' + '+' + 6*'-' + '\n'
+ kosten += u"%s | %s\n" % (u" Summe".ljust(30), "%2d.00" % preis)
+
+ return kosten
+
+ def gen_token(id, vorname, nachname):
+ return u"%s-%s-%s" % (id, nachname.decode('utf-8').upper(), vorname.decode('utf-8').upper())
+
+ if not os.path.exists('output'):
+ os.mkdir('output')
+
+ template = env.get_template('teilnehmerbeitrag.eml')
+
+ for id, vorname, nachname, email, tshirt, zipper in \
+ conn.execute("SELECT id, vorname, nachname, email, tshirt, zipper FROM teilnehmer WHERE emailsent = 0"):
+
+ with open(os.path.join('output', email), 'w') as f:
+ f.write(template.render(vorname=vorname.decode('utf-8'),
+ nachname=nachname.decode('utf-8'),
+ email=email.decode('utf-8'),
+ token=gen_token(id, vorname, nachname),
+ rechnung=gen_rechnung(tshirt, zipper)).encode('utf-8'))
+
+
+if __name__ == '__main__':
+ create_mail()
+
--- /dev/null
+From: kif415-orga@fsi.cs.fau.de
+To: {{vorname}} {{nachname}} <{{email}}>
+Reply-To: kif415-orga@fsi.cs.fau.de
+Subject: Teilnehmerbeitrag KIF 41.5
+Date: Wed, 04 Sep 2013 12:12:27 +0200
+Content-Type: text/plain; charset=utf-8
+Content-Disposition: inline
+Content-Transfer-Encoding: 8bit
+
+Moin!
+
+Du hast dich zur 41.5 KIF in Erlangen angemeldet. Dabei haben wir für
+dich Folgende Kosten notiert:
+
+{{rechnung}}
+
+Überweise bitten diesen Betrag bis Freitag, 13. September auf
+folgendes Konto:
+
+ Inhaber: XXXX
+ Kontonr: XXXX
+ BLZ: XXXX
+ IBAN: XXXX
+ Bank: XXXX
+ BIC: XXXX
+ Verwendungszweck: KIF-415 Konferenzbeitrag
+ {{token}}
+
+Wir freuen uns auf dein Kommen!
+
+ Die KIF 41.5 Orga