author | cavaliet |
Fri, 24 Oct 2014 14:03:34 +0200 | |
changeset 58 | 726ee64f18a9 |
parent 57 | cb4df234fd79 |
child 61 | 511bff609c3d |
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): |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
33 |
#TODO: check event code + get event session |
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
|
34 |
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
|
35 |
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
|
36 |
|
42
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
37 |
if not event: |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
38 |
abort(404) |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
39 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
40 |
#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
|
41 |
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
|
42 |
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
|
43 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
44 |
categories_json = None |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
45 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
46 |
if event_session: |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
47 |
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
|
48 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
49 |
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
|
50 |
categories_json = None |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
51 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
52 |
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
|
53 |
logging = True, |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
54 |
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
|
55 |
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
|
56 |
) |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
57 |
|
22
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
58 |
|
28 | 59 |
@app.route('/pianoroll') |
60 |
def page_pianoroll(): |
|
61 |
return render_template('pianoroll.html', logging=True) |
|
62 |
||
63 |
||
58 | 64 |
@app.route('/liens') |
65 |
def page_liens(): |
|
66 |
return render_template('liens.html') |
|
67 |
||
68 |
||
22
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
69 |
@app.route('/api/test', methods=['PUT', 'POST']) |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
70 |
def new(): |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
71 |
return jsonify(request.get_json(force=False)) |