roundabout,
created on Thursday, 11 January 2024, 14:59:51 (1704985191),
received on Wednesday, 31 July 2024, 06:54:40 (1722408880)
Author identity: vlad <vlad.muntoiu@gmail.com>
d24b75ab40c1d8543e77f7f711c42e6f82fcf47e
app.py
@@ -42,6 +42,8 @@ bcrypt = Bcrypt(app)
migrate = Migrate(app, db) from models import * import celeryTasks def gitCommand(repo, data, *args): if not os.path.isdir(repo):
@@ -329,6 +331,15 @@ def userProfile(username):
) db.session.add(relationship) user = db.session.get(User, username) author = db.session.get(User, flask.session.get("username")) notification = Notification({"type": "update", "version": "0.0.0"}) db.session.add(notification) db.session.commit() result = celeryTasks.sendNotification.delay(notification.id, [username], 1) flask.flash(f"Sending notification in task {result.id}", "success") db.session.commit() return flask.redirect("?", code=303)
celeryTasks.py
@@ -0,0 +1,15 @@
import time from celery import shared_task from app import db from models import * @shared_task(ignore_result=False) def sendNotification(notificationID, users, level): notification = db.session.get(Notification, notificationID) for user in users: db.session.add(UserNotification(db.session.get(User, user), notification, level)) db.session.commit() return 0 # notification sent successfully
models.py
@@ -5,6 +5,19 @@ from enum import Enum
from PIL import Image from cairosvg import svg2png __all__ = [ "RepoAccess", "RepoFavourite", "Repo", "UserFollow", "UserNotification", "User", "Notification", "PostVote", "Post", "Commit", ] with app.app_context(): class RepoAccess(db.Model): id = db.Column(db.Integer, primary_key=True)
@@ -240,7 +253,7 @@ with app.app_context():
def __init__(self, json): self.data = json def sendTo(self, users, level):for user in users:db.session.add(UserNotification(user, self, level))# def sendTo(self, users, level): # for user in users: # db.session.add(UserNotification(user, self, level))
templates/notifications.html
@@ -3,7 +3,7 @@
Notifications {% endblock %} {% block breadcrumbs %} <li><a href="/favourites">Notifications</a></li><li><a href="/notifications">Notifications</a></li>{% endblock %} {% block content %} <x-vbox>
@@ -12,7 +12,7 @@
{% for notification in notifications %} <article class="card"> <section class="card-main"> {{ notification.notification.author.username }}{{ notification.notification.json }}</section> </article> {% endfor %}