roundabout,
created on Wednesday, 27 December 2023, 17:12:39 (1703697159),
received on Wednesday, 31 July 2024, 06:54:40 (1722408880)
Author identity: vlad <vlad.muntoiu@gmail.com>
f9b12edececcdcab82675e3cf3cbe94e29d6249a
app.py
@@ -186,7 +186,7 @@ def notifications():
if not flask.session.get("username"):
flask.abort(401)
if flask.request.method == "GET":
return flask.render_template("notifications.html")
return flask.render_template("notifications.html", notifications=UserNotification.query.filter_by(userUsername=flask.session.get("username")))
@app.route("/accounts/", methods=["GET", "POST"])
models.py
@@ -115,7 +115,6 @@ with app.app_context():
commits = db.relationship("Commit", back_populates="repo")
posts = db.relationship("Post", back_populates="repo")
generatedNotifications = db.relationship("Notification", back_populates="repo")
repoAccess = db.relationship("RepoAccess", back_populates="repo")
favourites = db.relationship("RepoFavourite", back_populates="repo")
@@ -199,7 +198,7 @@ with app.app_context():
class UserNotification(db.Model):
id = db.Column(db.Integer, primary_key=True)
userUsername = db.Column(db.String(32), db.ForeignKey("user.username"), nullable=False)
notificationID = db.Column(db.BigInteger, db.ForeignKey("notification.id"), nullable=False)
notificationID = db.Column(db.BigInteger, db.ForeignKey("notification.id"))
attentionLevel = db.Column(db.SmallInteger, nullable=False) # 0 is read
readTime = db.Column(db.DateTime, nullable=True)
@@ -219,23 +218,26 @@ with app.app_context():
class Notification(db.Model):
id = db.Column(db.BigInteger, primary_key=True)
id = db.Column(db.BigInteger, primary_key=True, autoincrement=True)
message = db.Column(db.UnicodeText)
repoName = db.Column(db.String(98), db.ForeignKey("repo.route"), nullable=False)
authorName = db.Column(db.String(32), db.ForeignKey("user.username"), nullable=False)
repoName = db.Column(db.String(98), nullable=True)
authorName = db.Column(db.String(32), db.ForeignKey("user.username"), nullable=True)
timestamp = db.Column(db.DateTime, nullable=False, default=datetime.now)
link = db.Column(db.String(256), nullable=False)
link = db.Column(db.String(256), nullable=True)
author = db.relationship("User", back_populates="generatedNotifications")
repo = db.relationship("Repo", back_populates="generatedNotifications")
notifications = db.relationship("UserNotification", back_populates="notification")
def __init__(self, users, message, level, author, repo, link):
def __init__(self, message, author, repoLink, link):
self.message = message
self.authorName = author.username
self.repoName = repo.route
self.link = link
if author is not None:
self.authorName = author.username
self.repoLink = repoLink
def sendTo(self, users, level):
for user in users:
db.session.add(UserNotification(user, self, level))
templates/notifications.html
@@ -10,7 +10,11 @@
<x-frame style="--width: 896px;" class="flexible-space">
<x-vbox>
{% for notification in notifications %}
<article class="card">
<section class="caed-main">
{{ notification.notification.author.username }}
</section>
</article>
{% endfor %}
</x-vbox>
</x-frame>