diff options
author | rubenwardy <rw@rubenwardy.com> | 2020-07-08 23:20:29 +0100 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2020-07-08 23:20:29 +0100 |
commit | 0e2ea27f54e58287e04e046c65d04623295935dc (patch) | |
tree | b71f67c9f5d9f716c37d5b66435c7ab50bf3080a | |
parent | b2809ed12eb3d8d2aca73c1a9ea1505085c307e6 (diff) | |
download | cheatdb-0e2ea27f54e58287e04e046c65d04623295935dc.tar.xz |
Add notifications for editing maintainers
-rw-r--r-- | app/blueprints/packages/packages.py | 18 | ||||
-rw-r--r-- | app/utils.py | 2 |
2 files changed, 18 insertions, 2 deletions
diff --git a/app/blueprints/packages/packages.py b/app/blueprints/packages/packages.py index 12242ab..aa88415 100644 --- a/app/blueprints/packages/packages.py +++ b/app/blueprints/packages/packages.py @@ -374,7 +374,7 @@ def remove(package): package.approved = False triggerNotif(package.author, current_user, - "{} deleted".format(package.title), package.getDetailsURL()) + "{} unapproved".format(package.title), package.getDetailsURL()) db.session.commit() flash("Unapproved package", "success") @@ -405,9 +405,25 @@ def edit_maintainers(package): if request.method == "POST" and form.validate(): usernames = [x.strip().lower() for x in form.maintainers_str.data.split(",")] users = User.query.filter(func.lower(User.username).in_(usernames)).all() + + for user in users: + if not user in package.maintainers: + triggerNotif(user, current_user, + "Added you as a maintainer to {}".format(package.title), package.getDetailsURL()) + + for user in package.maintainers: + if not user in users: + triggerNotif(user, current_user, + "Removed you as a maintainer to {}".format(package.title), package.getDetailsURL()) + package.maintainers.clear() package.maintainers.extend(users) package.maintainers.append(package.author) + + if package.author != current_user: + triggerNotif(package.author, current_user, + "Edited {} maintainers".format(package.title), package.getDetailsURL()) + db.session.commit() return redirect(package.getDetailsURL()) diff --git a/app/utils.py b/app/utils.py index c302622..d6e6eaa 100644 --- a/app/utils.py +++ b/app/utils.py @@ -190,7 +190,7 @@ def is_package_page(f): def triggerNotif(owner, causer, title, url): if owner.rank.atLeast(UserRank.NEW_MEMBER) and owner != causer: - Notification.query.filter_by(user=owner, url=url).delete() + Notification.query.filter_by(user=owner, causer=causer, title=title, url=url).delete() notif = Notification(owner, causer, title, url) db.session.add(notif) |