aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/blueprints/packages/packages.py18
-rw-r--r--app/utils.py2
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)