From 989c36f52d034f4913d5469c1e4eb124eca5d0e4 Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Mon, 4 Jun 2018 14:17:13 +0100 Subject: [PATCH] WIP: add table to record links between items --- sourcing/model.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sourcing/model.py b/sourcing/model.py index 6ccf03f..71f5e72 100644 --- a/sourcing/model.py +++ b/sourcing/model.py @@ -122,6 +122,14 @@ class User(TimeStampedModel, UserMixin): raise LoginError('incorrect password') return user +class Reference(Base): + __tablename__ = 'reference' + subject_id = Column(Integer, ForeignKey('item.id'), primary_key=True) + object_id = Column(Integer, ForeignKey('item.id'), primary_key=True) + + subject_item = relationship('User', backref='objects') + object_item = relationship('User', backref='subjects') + class Item(TimeStampedModel): __tablename__ = 'item' __versioned__ = {'base_classes': (TimeStampedModel,)} @@ -134,6 +142,15 @@ class Item(TimeStampedModel): filename = Column(Unicode) text = Column(UnicodeText) + subjects = relationship('item', + secondary='reference', + # backref='object_item', + primaryjoin=id == Reference.object_id) + objects = relationship('item', + secondary='reference', + # backref='subjects_item', + primaryjoin=id == Reference.subject_id) + user = relationship('User', backref='items') __mapper_args__ = {