changeset 8:7054f6ae84d5

Added relationships between columns
author Michal Kawalec <mkawalec@lavabit.com>
date Sat, 01 Jun 2013 23:14:50 +0200
parents 0bdb36afda8a
children 596b325e41a7
files server/models.py
diffstat 1 files changed, 22 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/server/models.py	Sat Jun 01 22:42:43 2013 +0200
+++ b/server/models.py	Sat Jun 01 23:14:50 2013 +0200
@@ -30,6 +30,10 @@
     def edited(self):
         self.edition_timestamp = datetime.now()
 
+checkin_user = Table('checkin_user', Base.metadata,
+    Column('checkin_id', Integer, ForeignKey('checkin.id'), primary_key=True),
+    Column('user_id', Integer, ForeignKey('user.id'), primary_key=True),
+)
 
 class User(Boilerplate, Base):
     __tablename__ = 'users'
@@ -44,6 +48,10 @@
     activated = Column(Boolean)
     locale = Column(String(10))
 
+    checkins = relationship("Checkin",
+            secondary=checkin_user,
+            backref="users")
+
     def __init__(self, email, password):
         super(User, self).__init__()
 
@@ -81,10 +89,13 @@
         return False
 
 
-class UserNumber(Boilerplate, Base):
+class PhoneNumber(Boilerplate, Base):
     __tablename__ = 'user_number'
     number = Column(String(20), primary_key=True)
-    owner = ForeignKey(User)
+    
+    owner_id = Column(Integer, ForeignKey('users.id'))
+    owner = relationship("User",
+            backref=backref('numbers', order_by=id))
 
 
 class Mac(Boilerplate, Base):
@@ -92,6 +103,10 @@
     mac = Column(String(16), primary_key=True)
     owner = ForeignKey(User)
 
+    owner_id = Column(Integer, ForeignKey('users.id'))
+    owner = relationship("User",
+            backref=backref('mac_numbers', order_by=id))
+
 
 class PanicContact(Boilerplate, Base):
     __tablename__ = 'panic_contact'
@@ -100,6 +115,11 @@
     number = Column(String(20))
     comment = Column(String())
 
+    owner_id = Column(Integer, ForeignKey('users.id'))
+    owner = relationship("User",
+            backref=backref('panic_contacts', order_by=id))
+
+
 
 class Checkin(Boilerplate, Base):
     __tablename__ = 'checkin'
@@ -109,9 +129,3 @@
     long = Column(Float)
     accuracy = Column(Float)
 
-
-checkin_user = Table('checkin_user', Base.metadata,
-    Column('checkin_id', Integer, ForeignKey('checkin.id'), primary_key=True),
-    Column('user_id', Integer, ForeignKey('user.id'), primary_key=True),
-)
-