diff options
Diffstat (limited to 'app/models.py')
-rw-r--r-- | app/models.py | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/app/models.py b/app/models.py index b4edcc2..e0bcb2e 100644 --- a/app/models.py +++ b/app/models.py @@ -88,8 +88,11 @@ class User(db.Model, UserMixin): display_name = db.Column(db.String(100), nullable=False, server_default="") # Content - packages = db.relationship("Package", backref="author", lazy="dynamic") - requests = db.relationship("EditRequest", backref="author", lazy="dynamic") + notifications = db.relationship("Notification", primaryjoin="User.id==Notification.user_id") + + # causednotifs = db.relationship("Notification", backref="causer", lazy="dynamic") + packages = db.relationship("Package", backref="author", lazy="dynamic") + requests = db.relationship("EditRequest", backref="author", lazy="dynamic") def __init__(self, username): import datetime @@ -119,6 +122,24 @@ class User(db.Model, UserMixin): else: raise Exception("Permission {} is not related to users".format(perm.name)) + +class Notification(db.Model): + id = db.Column(db.Integer, primary_key=True) + user_id = db.Column(db.Integer, db.ForeignKey("user.id")) + causer_id = db.Column(db.Integer, db.ForeignKey("user.id")) + user = db.relationship("User", foreign_keys=[user_id]) + causer = db.relationship("User", foreign_keys=[causer_id]) + + title = db.Column(db.String(100), nullable=False) + url = db.Column(db.String(200), nullable=True) + + def __init__(self, us, cau, titl, ur): + self.user = us + self.causer = cau + self.title = titl + self.url = ur + + class License(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), nullable=False, unique=True) |