author | rougeronj |
Thu, 22 Jan 2015 15:02:54 +0100 | |
changeset 120 | 89544c28a364 |
parent 78 | 37bb8e326446 |
permissions | -rw-r--r-- |
0 | 1 |
|
2 |
# |
|
3 |
# See LICENCE for detail |
|
4 |
# Copyright (c) 2014 IRI |
|
5 |
# |
|
6 |
||
7 |
import datetime |
|
8 |
import json |
|
9 |
import uuid |
|
10 |
||
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
|
11 |
from sqlalchemy import (Column, Integer, String, DateTime, Text, Table, Index, |
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
|
12 |
text, ForeignKey, Boolean) |
42
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
13 |
from sqlalchemy.orm import relationship, backref |
22
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
14 |
from sqlalchemy.sql import func |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
15 |
from sqlalchemy.dialects.postgresql import UUID, JSON |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
16 |
|
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
17 |
from database import Base, engine |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
18 |
|
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
19 |
|
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
20 |
class Annotation(Base): |
42
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
21 |
__tablename__ = 'annotation' |
22
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
22 |
|
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
23 |
id = Column(Integer, primary_key=True, nullable=False) |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
24 |
uuid = Column(UUID, unique=True, nullable=False) |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
25 |
created = Column(DateTime, nullable=False, server_default=text("(now() at time zone 'utc')") ) |
78
37bb8e326446
add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
43
diff
changeset
|
26 |
ts = Column(DateTime(timezone=True), nullable=False, index=True) |
37bb8e326446
add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
43
diff
changeset
|
27 |
event_code = Column(String(255), ForeignKey('event.code'), nullable=False, index=True) |
37bb8e326446
add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
43
diff
changeset
|
28 |
channel = Column(String(255), nullable=False, index=True) |
22
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
29 |
content = Column(JSON) |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
30 |
|
0 | 31 |
|
32 |
def insert_annot_async(params, conn): |
|
33 |
||
34 |
content = params.get('content', {}) |
|
35 |
if not isinstance(content, basestring): |
|
36 |
params['content'] = json.dumps(content) |
|
37 |
if 'uuid' not in params: |
|
38 |
params['uuid'] = uuid.uuid4() |
|
39 |
||
40 |
if 'ts' not in params: |
|
41 |
params['ts'] = datetime.utcnow() |
|
42 |
||
22
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
43 |
stmt = Annotation.__table__.insert().values(**params).compile(engine) |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
44 |
|
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
45 |
defer = conn.runOperation(stmt.string, stmt.params) |
986ee928a866
add sqlalchemy model + put create module for webapp
ymh <ymh.work@gmail.com>
parents:
0
diff
changeset
|
46 |
defer.addCallback(lambda _: stmt.params) |
0 | 47 |
|
48 |
return defer |
|
42
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
49 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
50 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
51 |
class Event(Base): |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
52 |
__tablename__ = 'event' |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
53 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
54 |
id = Column(Integer, primary_key=True, nullable=False) |
78
37bb8e326446
add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
43
diff
changeset
|
55 |
code = Column(String(255), unique=True, nullable=False, index=True) |
42
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
56 |
label = Column(String(2048), nullable=False) |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
57 |
description = Column(Text(), nullable=True) |
78
37bb8e326446
add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
43
diff
changeset
|
58 |
start_date = Column(DateTime(), nullable=True, index=True) |
37bb8e326446
add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
43
diff
changeset
|
59 |
active = Column(Boolean(), nullable=False, default=True, server_default='1', index=True) |
42
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
60 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
61 |
sessions = relationship("EventSession", order_by="EventSession.order", backref="event") |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
62 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
63 |
def __unicode__(self): |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
64 |
return self.code |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
65 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
66 |
class EventSession(Base): |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
67 |
__tablename__ = 'event_session' |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
68 |
|
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
69 |
id = Column(Integer, primary_key=True, nullable=False) |
78
37bb8e326446
add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
43
diff
changeset
|
70 |
uuid = Column(UUID, unique=True, nullable=False, default=uuid.uuid4) |
37bb8e326446
add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
43
diff
changeset
|
71 |
label = Column(String(2048), nullable=True) |
42
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
72 |
event_id = Column(Integer, ForeignKey(Event.id), nullable=False) |
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
73 |
project_id = Column(String(2048), nullable=True) |
78
37bb8e326446
add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
43
diff
changeset
|
74 |
order = Column(Integer, nullable=False, default=0, index=True) |
37bb8e326446
add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
43
diff
changeset
|
75 |
start_ts = Column(DateTime(timezone=True), nullable=True, index=True) |
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
|
76 |
duration = Column(Integer, nullable=True) |
42
926f0426ce78
add event + event session + admin + category json management. Must rebuild database
ymh <ymh.work@gmail.com>
parents:
22
diff
changeset
|
77 |
categories_json = Column(JSON, nullable=True) |