annot-server/webapp/views.py
changeset 42 926f0426ce78
parent 28 6025b8470d18
child 43 e27c3c1c57f1
equal deleted inserted replaced
41:69a7e0b101de 42:926f0426ce78
     1 #
     1 #
     2 # See LICENCE for detail
     2 # See LICENCE for detail
     3 # Copyright (c) 2014 IRI
     3 # Copyright (c) 2014 IRI
     4 #
     4 #
     5 
     5 
     6 from flask import render_template, jsonify, request
     6 import json
       
     7 
       
     8 from flask import render_template, jsonify, request, abort
       
     9 from jinja2 import Markup
       
    10 from sqlalchemy.orm import joinedload
     7 
    11 
     8 from webapp import app
    12 from webapp import app
       
    13 from database import db_session
       
    14 import models
     9 
    15 
    10 @app.route('/')
    16 @app.route('/')
    11 def page_home():
    17 def page_home():
    12     return render_template('index.html')
    18     return render_template('index.html')
    13     #return render_template('annotationclient.html', logging=True)
    19     #return render_template('annotationclient.html', logging=True)
    20 
    26 
    21 @app.route('/annotationclient')
    27 @app.route('/annotationclient')
    22 def page_annotationclient():
    28 def page_annotationclient():
    23     return render_template('annotationclient.html', logging=True)
    29     return render_template('annotationclient.html', logging=True)
    24 
    30 
       
    31 @app.route('/annotationclient/<event_code>')
       
    32 def page_annotationclient_event_code(event_code):
       
    33     #TODO: check event code + get event session
       
    34     event_query = db_session.query(models.Event).filter(models.Event.code==event_code)
       
    35     event = event_query.one()
       
    36     if not event:
       
    37         abort(404)
       
    38 
       
    39     #TODO: See why the relationship management does not work
       
    40     event_session_q = db_session.query(models.EventSession).filter(models.EventSession.event_id==event.id).order_by(models.EventSession.order.desc())
       
    41     event_session = event_session_q.first()
       
    42 
       
    43     categories_json = None
       
    44 
       
    45     if event_session:
       
    46         categories_json = event_session.categories_json
       
    47 
       
    48     if not categories_json:
       
    49         categories_json = None
       
    50 
       
    51     return render_template('annotationclient.html',
       
    52         logging = True,
       
    53         event_code = event_code,
       
    54         categories_json = Markup(json.dumps(categories_json).replace('\'','\\\'')) if categories_json else None
       
    55     )
       
    56 
    25 
    57 
    26 @app.route('/pianoroll')
    58 @app.route('/pianoroll')
    27 def page_pianoroll():
    59 def page_pianoroll():
    28     return render_template('pianoroll.html', logging=True)
    60     return render_template('pianoroll.html', logging=True)
    29 
    61