author | rougeronj |
Fri, 17 Apr 2015 11:29:04 +0200 | |
changeset 160 | fd3482903412 |
parent 108 | 082b64a5c699 |
permissions | -rw-r--r-- |
22
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
1 |
# |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
2 |
# See LICENCE for detail |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
3 |
# Copyright (c) 2014 IRI |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
4 |
# |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
5 |
|
42
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
6 |
import json |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
7 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
8 |
from flask import render_template, jsonify, request, abort |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
9 |
from jinja2 import Markup |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
10 |
from sqlalchemy.orm import joinedload |
22
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
11 |
|
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
12 |
from webapp import app |
42
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
13 |
from database import db_session |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
14 |
import models |
22
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
15 |
|
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
16 |
@app.route('/') |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
17 |
def page_home(): |
43
e27c3c1c57f1
end of admin. change the index page and add a redirect to it on the landing page
ymh <ymh.work@gmail.com>
parents:
42
diff
changeset
|
18 |
events = db_session.query(models.Event).filter(models.Event.active == True).order_by(models.Event.start_date, models.Event.code).all() |
e27c3c1c57f1
end of admin. change the index page and add a redirect to it on the landing page
ymh <ymh.work@gmail.com>
parents:
42
diff
changeset
|
19 |
return render_template('index.html', events=events) |
22
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
20 |
|
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
21 |
|
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
22 |
@app.route('/annot') |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
23 |
def page_annot(): |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
24 |
return render_template('annot.html') |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
25 |
|
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
26 |
|
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
27 |
@app.route('/annotationclient') |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
28 |
def page_annotationclient(): |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
29 |
return render_template('annotationclient.html', logging=True) |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
30 |
|
42
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
31 |
@app.route('/annotationclient/<event_code>') |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
32 |
def page_annotationclient_event_code(event_code): |
43
e27c3c1c57f1
end of admin. change the index page and add a redirect to it on the landing page
ymh <ymh.work@gmail.com>
parents:
42
diff
changeset
|
33 |
event_query = db_session.query(models.Event).filter(models.Event.code == event_code, models.Event.active == True) |
57
cb4df234fd79
when querying event, replace one by first to avoid raising an exception when the event is not found
ymh <ymh.work@gmail.com>
parents:
43
diff
changeset
|
34 |
event = event_query.first() |
43
e27c3c1c57f1
end of admin. change the index page and add a redirect to it on the landing page
ymh <ymh.work@gmail.com>
parents:
42
diff
changeset
|
35 |
|
42
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
36 |
if not event: |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
37 |
abort(404) |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
38 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
39 |
#TODO: See why the relationship management does not work |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
40 |
event_session_q = db_session.query(models.EventSession).filter(models.EventSession.event_id==event.id).order_by(models.EventSession.order.desc()) |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
41 |
event_session = event_session_q.first() |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
42 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
43 |
categories_json = None |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
44 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
45 |
if event_session: |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
46 |
categories_json = event_session.categories_json |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
47 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
48 |
if not categories_json: |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
49 |
categories_json = None |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
50 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
51 |
return render_template('annotationclient.html', |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
52 |
logging = True, |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
53 |
event_code = event_code, |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
54 |
categories_json = Markup(json.dumps(categories_json).replace('\'','\\\'')) if categories_json else None |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
55 |
) |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
56 |
|
22
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
57 |
|
28 | 58 |
@app.route('/pianoroll') |
59 |
def page_pianoroll(): |
|
76
029cdbeebf03
filter pianoroll annotation by channel & event
ymh <ymh.work@gmail.com>
parents:
61
diff
changeset
|
60 |
events = db_session.query(models.Event).filter(models.Event.active == True).order_by(models.Event.start_date, models.Event.code).all() |
029cdbeebf03
filter pianoroll annotation by channel & event
ymh <ymh.work@gmail.com>
parents:
61
diff
changeset
|
61 |
return render_template('pianoroll_index.html', events=events) |
029cdbeebf03
filter pianoroll annotation by channel & event
ymh <ymh.work@gmail.com>
parents:
61
diff
changeset
|
62 |
|
108 | 63 |
@app.route('/pianoroll/pr/<event_code>') |
76
029cdbeebf03
filter pianoroll annotation by channel & event
ymh <ymh.work@gmail.com>
parents:
61
diff
changeset
|
64 |
def page_pianoroll_event_code(event_code): |
029cdbeebf03
filter pianoroll annotation by channel & event
ymh <ymh.work@gmail.com>
parents:
61
diff
changeset
|
65 |
event = db_session.query(models.Event).filter(models.Event.code == event_code, models.Event.active == True).first() |
029cdbeebf03
filter pianoroll annotation by channel & event
ymh <ymh.work@gmail.com>
parents:
61
diff
changeset
|
66 |
if not event: |
029cdbeebf03
filter pianoroll annotation by channel & event
ymh <ymh.work@gmail.com>
parents:
61
diff
changeset
|
67 |
abort(404) |
029cdbeebf03
filter pianoroll annotation by channel & event
ymh <ymh.work@gmail.com>
parents:
61
diff
changeset
|
68 |
|
029cdbeebf03
filter pianoroll annotation by channel & event
ymh <ymh.work@gmail.com>
parents:
61
diff
changeset
|
69 |
return render_template('pianoroll.html', logging=True, event=event) |
28 | 70 |
|
108 | 71 |
@app.route('/pianoroll/av/<event_code>') |
72 |
def page_annotviz_event_code(event_code): |
|
73 |
event = db_session.query(models.Event).filter(models.Event.code == event_code, models.Event.active == True).first() |
|
74 |
if not event: |
|
75 |
abort(404) |
|
76 |
||
77 |
return render_template('annotviz.html', logging=True, event=event) |
|
78 |
||
28 | 79 |
|
58 | 80 |
|
22
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
81 |
@app.route('/api/test', methods=['PUT', 'POST']) |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
82 |
def new(): |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
83 |
return jsonify(request.get_json(force=False)) |