+#!/usr/bin/python2
+
+import os
+import os.path
+import sqlite3
+import tarfile
+import StringIO
+
+from flask import Flask, session, redirect, url_for, escape, request, render_template, g, make_response
+
+app = Flask(__name__)
+
+#DATABASE = os.path.join(os.path.dirname(__file__), '..', 'data', 'fachschaften.sqlite')
+DATABASE = os.path.join(os.path.dirname(__file__), 'fachschaften.sqlite')
+
+def get_db():
+ db = sqlite3.connect(DATABASE)
+ db.row_factory = sqlite3.Row
+ return db
+
+@app.route('/')
+def index():
+ db = get_db()
+ cursor = db.cursor()
+ fachschaften = cursor.execute("SELECT * from fachschaft")
+ return render_template('index.html', fachschaften=fachschaften)
+
+@app.route('/show/<int:id>/')
+def show(id):
+ db = get_db()
+ cursor = db.cursor()
+ fachschaft = cursor.execute("SELECT * from fachschaft WHERE rowid = ?", [id]).fetchone()
+ studiengang = cursor.execute("SELECT * from studiengang WHERE fachschaft = ?", [fachschaft['rowid']]).fetchall()
+ return render_template('show.html', fachschaft=fachschaft, studiengaenge=studiengang)
+
+@app.route('/add/')
+def add():
+ return render_template('add.html')
+
+@app.route('/addp/', methods=['POST'])
+def add_process():
+ db = get_db()
+ cursor = db.cursor()
+ data = request.form
+
+ print data
+
+ cursor.execute("INSERT INTO fachschaft "
+ "(langname, kurzname, land, stadt, studenten, "
+ "organ, vertreten, organisation, fachschaftler) "
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",
+ [data['unilang'],
+ data['unikurz'],
+ data['bundesland'],
+ data['stadt'],
+ data['gesamtstudis'],
+ data['fsorgan'],
+ data['vertretenestudis'],
+ data['organisationsform'],
+ data['aktive']])
+ rowid = cursor.lastrowid
+ for i in range(0, 10):
+ if data['studiengang%d' % i] != '':
+ cursor.execute("INSERT INTO studiengang "
+ "(fachschaft, name, anf_dieses, anf_vorjahr) "
+ "VALUES (?, ?, ?, ?)",
+ [int(rowid),
+ data['studiengang%d' % i],
+ data['anfaenger%d' % i],
+ data['vorjahr%d' % i]])
+ db.commit()
+ return redirect(url_for('show', id = rowid))
+
+@app.route('/download/')
+def download():
+ db = get_db()
+ cursor = db.cursor()
+ data = StringIO.StringIO()
+ tar = tarfile.TarFile(mode='w', fileobj=data)
+ for fachschaft in cursor.execute("SELECT * from fachschaft"):
+ studiengaenge = cursor.execute("SELECT * from studiengang WHERE fachschaft = ?", [fachschaft['rowid']]).fetchall()
+ fdata = render_template('fachschaft.tex',
+ fachschaft = fachschaft,
+ studiengaenge = studiengaenge)
+ fdata = fdata.encode('utf-8')
+ info = tarfile.TarInfo(name=fachschaft['kurzname'])
+ info.size = len(fdata)
+ tar.addfile(info, StringIO.StringIO(fdata))
+ print fdata
+
+ tar.close()
+ responseobj=make_response(data.getvalue())
+ responseobj.mimetype="application/x-tar"
+ return responseobj
+
+if __name__ == '__main__':
+ app.run(debug=True)