# http://flask.pocoo.org/
# FLASK_APP=wradmin FLASK_DEBUG=1 WRADMIN_SETTINGS=development.cfg python3 -m flask run
# FLASK_APP=wradmin WRADMIN_SETTINGS=production.cfg python3 -m flask run
-from flask import Flask, send_from_directory, abort, g
+from flask import Flask, send_from_directory, abort, g, render_template
from sqlalchemy.engine import create_engine
-from wradmin.genshi import render_genshi_template
+import wradmin.model
+import wradmin.genshi
+from wradmin.controllers.rodelbahn import RodelbahnController
+from wradmin.controllers.gasthaus import GasthausController
+from wradmin.controllers.bericht import BerichtController
+from wradmin.controllers.coordtool import CoordtoolController
app = Flask(__name__)
app.config.from_envvar('WRADMIN_SETTINGS')
-
-
-def get_db():
- """Opens a new database connection if there is none yet for the
- current application context.
- """
- if not hasattr(g, 'db'):
- g.db_engine = create_engine(app.config['DATABASE_URI'])
- g.db = g.db_engine.connect()
- return g.db
+wradmin.model.init_model(create_engine(app.config['DATABASE_URI']))
+app.jinja_env.globals.update(h=wradmin.genshi.PylonsHelper())
@app.teardown_appcontext
-def close_db(error):
- """Closes the database again at the end of the request."""
- if hasattr(g, 'db'):
- g.db.close()
+def remove_db_session(error):
+ """Removes the database session at the end of the request."""
+ wradmin.model.meta.Session.remove()
@app.route("/")
-def hello():
- return render_genshi_template('index.html')
+def index():
+ return render_template('index.html')
-@app.route("/rodelbahn/")
+@app.route("/rodelbahn/list")
def rodelbahn_list():
- pass
+ return RodelbahnController().list()
+
+
+@app.route("/rodelbahn/view/<int:id>")
+def rodelbahn_view(id):
+ return RodelbahnController().view(id)
+
+
+@app.route("/rodelbahn/update")
+def rodelbahn_update():
+ return RodelbahnController().update()
-@app.route("/bericht/")
+@app.route("/rodelbahn/update_regioncache")
+def rodelbahn_update_regioncache():
+ return RodelbahnController().update_regioncache()
+
+
+@app.route("/bericht/list")
def bericht_list():
- pass
+ return BerichtController().list()
+
+
+@app.route("/bericht/view/<int:id>")
+def bericht_view(id):
+ return BerichtController().view(id)
+
+
+@app.route("/bericht/change_date_invalid/<int:id>", methods=['POST'])
+def bericht_change_date_invalid(id):
+ return BerichtController().change_date_invalid(id)
+
+
+@app.route("/gasthaus/list")
+def gasthaus_list():
+ return GasthausController().list()
+
+
+@app.route("/gasthaus/view/<int:id>")
+def gasthaus_view(id):
+ return GasthausController().view(id)
+
+
+@app.route("/gasthaus/update")
+def gasthaus_update():
+ return GasthausController().update()
+
+
+@app.route("/coordtool/index")
+def coordtool_index():
+ return CoordtoolController().index()
+
+
+@app.route("/coordtool/convert", methods=['POST'])
+def coordtool_convert():
+ return CoordtoolController().convert()