annot-server/webapp/views.py
changeset 42 926f0426ce78
parent 28 6025b8470d18
child 43 e27c3c1c57f1
--- a/annot-server/webapp/views.py	Fri Oct 17 17:54:06 2014 +0200
+++ b/annot-server/webapp/views.py	Sun Oct 19 12:52:38 2014 +0200
@@ -3,9 +3,15 @@
 # Copyright (c) 2014 IRI
 #
 
-from flask import render_template, jsonify, request
+import json
+
+from flask import render_template, jsonify, request, abort
+from jinja2 import Markup
+from sqlalchemy.orm import joinedload
 
 from webapp import app
+from database import db_session
+import models
 
 @app.route('/')
 def page_home():
@@ -22,6 +28,32 @@
 def page_annotationclient():
     return render_template('annotationclient.html', logging=True)
 
+@app.route('/annotationclient/<event_code>')
+def page_annotationclient_event_code(event_code):
+    #TODO: check event code + get event session
+    event_query = db_session.query(models.Event).filter(models.Event.code==event_code)
+    event = event_query.one()
+    if not event:
+        abort(404)
+
+    #TODO: See why the relationship management does not work
+    event_session_q = db_session.query(models.EventSession).filter(models.EventSession.event_id==event.id).order_by(models.EventSession.order.desc())
+    event_session = event_session_q.first()
+
+    categories_json = None
+
+    if event_session:
+        categories_json = event_session.categories_json
+
+    if not categories_json:
+        categories_json = None
+
+    return render_template('annotationclient.html',
+        logging = True,
+        event_code = event_code,
+        categories_json = Markup(json.dumps(categories_json).replace('\'','\\\'')) if categories_json else None
+    )
+
 
 @app.route('/pianoroll')
 def page_pianoroll():