From 4ccb3770cb214ee0869604c1b881fb9327422784 Mon Sep 17 00:00:00 2001
From: Hinrikus Wolf <hinrikus.wolf@rwth-aachen.de>
Date: Sat, 7 Nov 2015 12:37:00 +0100
Subject: [PATCH] add relationships to database model

---
 models/database.py | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/models/database.py b/models/database.py
index 1c4edfa..a249ec6 100644
--- a/models/database.py
+++ b/models/database.py
@@ -4,6 +4,8 @@ from datetime import datetime
 
 from shared import db
 
+from sqlalchemy.orm import relationship, backref
+
 class User(db.Model, UserMixin):
     __tablename__ = "users"
     id = db.Column(db.Integer, primary_key=True)
@@ -32,13 +34,20 @@ class User(db.Model, UserMixin):
             self.temp_key,
             self.temp_key_timestamp
         )
-
+        
+class Event(db.Model):
+    __tablename__ = "events"
+    id = db.Column(db.Integer, primary_key=True)
+    name = db.Column(db.String, unique=True)
 
 class Topic(db.Model):
     __tablename__ = "topics"
     id = db.Column(db.Integer, primary_key=True)
     name = db.Column(db.String, unique=True)
     mode = db.Column(db.String)
+    event_id = db.Column(db.Integer, db.ForeignKey("events.id"), nullable=False)
+    event = relationship("Event", backref=backref("topics",order_by=id))
+    
     
     def __init__(self, name, mode):
         self.name = name
@@ -56,7 +65,8 @@ class Speaker(db.Model):
     __tablename__ = "speakers"
     id = db.Column(db.Integer, primary_key=True)
     name = db.Column(db.String)
-    event = db.Column(db.Integer, db.ForeignKey("events.id"), nullable=False)
+    event_id = db.Column(db.Integer, db.ForeignKey("events.id"), nullable=False)
+    event = relationship("Event", backref=backref("speakers",order_by=id))
     
     def __init__(self, name, event):
         self.name = name
@@ -73,8 +83,12 @@ class Speaker(db.Model):
 class Statement(db.Model):
     __tablename__ = "statements"
     id = db.Column(db.Integer, primary_key=True)
-    speaker = db.Column(db.Integer, db.ForeignKey("speakers.id"), nullable=False)
-    event = db.Column(db.Integer, db.ForeignKey("events.id"), nullable=False)
+    speaker_id = db.Column(db.Integer, db.ForeignKey("speakers.id"), nullable=False)
+    event_id = db.Column(db.Integer, db.ForeignKey("events.id"), nullable=False)
+    
+    speaker = relationship("Speaker", backref=backref("statements",order_by=id))
+    event = relationship("Event", backref=backref("statements",order_by=id))
+    
     insertion_time = db.Column(db.DateTime)
     executed = db.Column(db.Boolean)
     execution_time = db.Column(db.DateTime)
-- 
GitLab