roundabout,
created on Monday, 8 April 2024, 15:18:44 (1712589524),
received on Wednesday, 31 July 2024, 06:54:45 (1722408885)
Author identity: vlad <vlad.muntoiu@gmail.com>
c876bd581a08b31672aba6d993ef917e9b63de49
app.py
@@ -97,7 +97,7 @@ def default():
"user_object": user_object,
"Notification": Notification,
"unread": UserNotification.query.filter_by(user_username=username).filter(
UserNotification.attention_level > 0).count(),
UserNotification.attention_level > 0).count(),
"config": config,
"Markup": Markup,
"locale_names": locale_names,
@@ -224,6 +224,19 @@ def mark_unread(notification_id):
return f"<button hx-post='/notifications/{ notification.id }/read' hx-swap='outerHTML'>Mark as read</button>", 200
@app.route("/notifications/mark-all-read", methods=["POST"])
def mark_all_read():
if not flask.session.get("username"):
flask.abort(401)
notifications = UserNotification.query.filter_by(
user_username=flask.session.get("username"))
for notification in notifications:
notification.mark_read()
db.session.commit()
return flask.redirect("/notifications/", code=303)
@app.route("/accounts/", methods=["GET", "POST"])
def login():
if flask.request.method == "GET":
templates/notifications.html
@@ -10,6 +10,9 @@
<x-frame style="--width: 896px;" class="flexible-space">
<x-vbox>
{% if notifications %}
<form method="post" action="/notifications/mark-all-read">
<button type="submit">Mark all as read</button>
</form>
{% for notification in notifications %}
<article class="card card-horizontal">
<section class="card-main flexible-space">