annot-server/webapp/views.py
author ymh <ymh.work@gmail.com>
Mon, 20 Oct 2014 01:31:33 +0200
changeset 43 e27c3c1c57f1
parent 42 926f0426ce78
child 57 cb4df234fd79
permissions -rw-r--r--
end of admin. change the index page and add a redirect to it on the landing page

#
# See LICENCE for detail
# Copyright (c) 2014 IRI
#

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():
    events = db_session.query(models.Event).filter(models.Event.active == True).order_by(models.Event.start_date, models.Event.code).all()
    return render_template('index.html', events=events)


@app.route('/annot')
def page_annot():
    return render_template('annot.html')


@app.route('/annotationclient')
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, models.Event.active == True)
    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():
    return render_template('pianoroll.html', logging=True)


@app.route('/api/test', methods=['PUT', 'POST'])
def new():
    return jsonify(request.get_json(force=False))