X-Git-Url: https://git.siccegge.de//index.cgi?p=fachschaftentool.git;a=blobdiff_plain;f=application.py;h=3761ba343c9fed02391ca4a6273f0d35e7def773;hp=8ceb6c9e74c6bf45737c884ea7179d47abd22d25;hb=HEAD;hpb=51f7d680094c33dacf0ee2dc7d120651835e5398 diff --git a/application.py b/application.py index 8ceb6c9..3761ba3 100644 --- a/application.py +++ b/application.py @@ -1,5 +1,5 @@ #!/usr/bin/python2 - +# -*- coding: utf-8 -*- import os import os.path import sqlite3 @@ -10,8 +10,8 @@ from flask import Flask, session, redirect, url_for, escape, request, render_tem app = Flask(__name__) -#DATABASE = os.path.join(os.path.dirname(__file__), '..', 'data', 'fachschaften.sqlite') -DATABASE = os.path.join(os.path.dirname(__file__), 'fachschaften.sqlite') +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) @@ -42,13 +42,11 @@ 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 (?, ?, ?, ?, ?, ?, ?, ?, ?)", + "organ, vertreten, organisation, fachschaftler, homepage) " + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", [data['unilang'], data['unikurz'], data['bundesland'], @@ -57,7 +55,8 @@ def add_process(): data['fsorgan'], data['vertretenestudis'], data['organisationsform'], - data['aktive']]) + data['aktive'], + data['homepage']]) rowid = cursor.lastrowid for i in range(0, 10): if data['studiengang%d' % i] != '': @@ -75,18 +74,47 @@ def add_process(): def download(): db = get_db() cursor = db.cursor() + universities = [] data = StringIO.StringIO() tar = tarfile.TarFile(mode='w', fileobj=data) - for fachschaft in cursor.execute("SELECT * from fachschaft"): + for fachschaft in cursor.execute("SELECT * from fachschaft").fetchall(): 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']) + filename = '%s_%s.tex' % (fachschaft['kurzname'].strip().lower().replace(' ', '_').replace('/','_').replace(u'ä', 'ae').replace(u'ü', 'ue').replace(u'ö', 'oe'), + fachschaft['rowid']) + info = tarfile.TarInfo(name='fachschaften/%s' % filename) info.size = len(fdata) tar.addfile(info, StringIO.StringIO(fdata)) - print fdata + universities.append(filename) + + # liste.tex + fdata = ('\n'.join(['\input{fachschaften/%s}' % (u) for u in universities])).encode('utf-8') + info = tarfile.TarInfo(name='liste.tex') + info.size = len(fdata) + tar.addfile(info, StringIO.StringIO(fdata)) + + # master.tex + fdata = file(os.path.join(os.path.dirname(__file__), 'templates', 'master.tex')).read() + info = tarfile.TarInfo(name='master.tex') + info.size = len(fdata) + tar.addfile(info, StringIO.StringIO(fdata)) + + # kiflogo.pdf + fdata = file(os.path.join(os.path.dirname(__file__), 'templates', 'kiflogo.pdf')).read() + info = tarfile.TarInfo(name='kiflogo.pdf') + info.size = len(fdata) + tar.addfile(info, StringIO.StringIO(fdata)) + + # theme + for elem in os.listdir(os.path.join(os.path.dirname(__file__), 'templates', 'beamertheme')): + fdata = file(os.path.join(os.path.dirname(__file__), 'templates', 'beamertheme', elem)).read() + info = tarfile.TarInfo(name=elem) + info.size = len(fdata) + tar.addfile(info, StringIO.StringIO(fdata)) + tar.close() responseobj=make_response(data.getvalue())