]> git.siccegge.de Git - teilnehmertool.git/commitdiff
Add teilnehmertool
authorChristoph Egger <Christoph.Egger@fau.de>
Wed, 4 Sep 2013 13:10:36 +0000 (15:10 +0200)
committerChristoph Egger <Christoph.Egger@fau.de>
Wed, 4 Sep 2013 13:10:36 +0000 (15:10 +0200)
LICENSE [new file with mode: 0644]
db.schema [new file with mode: 0644]
teilnehmertool.py [new file with mode: 0644]
templates/teilnehmerbeitrag.eml [new file with mode: 0644]

diff --git a/LICENSE b/LICENSE
new file mode 100644 (file)
index 0000000..e9335a5
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,18 @@
+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.
diff --git a/db.schema b/db.schema
new file mode 100644 (file)
index 0000000..ba03c40
--- /dev/null
+++ b/db.schema
@@ -0,0 +1,21 @@
+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
diff --git a/teilnehmertool.py b/teilnehmertool.py
new file mode 100644 (file)
index 0000000..1547678
--- /dev/null
@@ -0,0 +1,50 @@
+#!/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()
+        
diff --git a/templates/teilnehmerbeitrag.eml b/templates/teilnehmerbeitrag.eml
new file mode 100644 (file)
index 0000000..7ac113b
--- /dev/null
@@ -0,0 +1,31 @@
+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