-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmodels.py
53 lines (40 loc) · 1.92 KB
/
models.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from app import db
class StringEnum:
@classmethod
def values(cls):
attrs = cls.__dict__.keys()
return set(attr for attr in attrs if not attr.startswith("__") and attr != "values")
class EditStatus(StringEnum):
incomplete = 'incomplete'
done = 'done'
unusable = 'unusable'
class ReviewStatus(StringEnum):
reviewing = 'reviewing'
done = 'done'
unusable = 'unusable'
class RoomDay(db.Model):
id = db.Column(db.Integer, primary_key=True)
room = db.Column(db.Text, nullable=False)
day = db.Column(db.Text, nullable=False)
date = db.Column(db.Date, nullable=False)
vid = db.Column(db.Text, nullable=False)
comment = db.Column(db.Text, nullable=False, default="")
checked_out_by = db.Column(db.Text, nullable=False, default="")
talks = db.relationship('Talk', order_by="Talk.sched_start")
db.Index('room_day_index', RoomDay.room, RoomDay.day)
class Talk(db.Model):
id = db.Column(db.Integer, primary_key=True)
room_day_id = db.Column(db.Integer, db.ForeignKey('room_day.id'))
path = db.Column(db.Text, nullable=False, index=True)
speakers = db.Column(db.Text, nullable=False)
sched_start = db.Column(db.Text, nullable=False)
sched_end = db.Column(db.Text, nullable=False)
title = db.Column(db.Text, nullable=False)
description = db.Column(db.Text, nullable=False)
notes = db.Column(db.Text, nullable=False, default="")
start = db.Column(db.Integer, default=0, nullable=False)
end = db.Column(db.Integer, default=0, nullable=False)
review_status = db.Column(db.VARCHAR, default=ReviewStatus.reviewing, nullable=False)
edit_status = db.Column(db.VARCHAR, default=EditStatus.incomplete, nullable=False)
last_edited_by = db.Column(db.Text, nullable=False, default="")
thumbnail = db.Column(db.Integer, default=0, nullable=False)