From 2f77a84ec563dc7c3b0f97df5434c08d41c29b45 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Mon, 19 Jul 2021 23:49:29 +0100 Subject: [PATCH] Add notification when release creation fails --- app/blueprints/packages/packages.py | 4 ++++ app/tasks/importtasks.py | 5 ++++- app/utils/models.py | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/blueprints/packages/packages.py b/app/blueprints/packages/packages.py index d070ef0..426496a 100644 --- a/app/blueprints/packages/packages.py +++ b/app/blueprints/packages/packages.py @@ -448,8 +448,12 @@ def edit_maintainers(package): usernames = [x.strip().lower() for x in form.maintainers_str.data.split(",")] users = User.query.filter(func.lower(User.username).in_(usernames)).all() + thread = package.threads.filter_by(author=get_system_user()).first() + for user in users: if not user in package.maintainers: + if thread: + thread.watchers.append(user) addNotification(user, current_user, NotificationType.MAINTAINER, "Added you as a maintainer of {}".format(package.title), package.getDetailsURL(), package) diff --git a/app/tasks/importtasks.py b/app/tasks/importtasks.py index caf5596..f20c08c 100644 --- a/app/tasks/importtasks.py +++ b/app/tasks/importtasks.py @@ -70,7 +70,7 @@ def getMeta(urlstr, author): return result -def postReleaseCheckUpdate(self, release, path): +def postReleaseCheckUpdate(self, release: PackageRelease, path): try: tree = build_tree(path, expected_type=ContentType[release.package.type.name], author=release.package.author.username, name=release.package.name) @@ -130,6 +130,9 @@ def postReleaseCheckUpdate(self, release, path): except MinetestCheckError as err: db.session.rollback() + msg = f"{err}\n\nTask ID: {self.request.id}\n\nRelease: [View Release]({release.getEditURL()})" + post_bot_message(release.package, f"Release {release.title} validation failed", msg) + if "Fails validation" not in release.title: release.title += " (Fails validation)" diff --git a/app/utils/models.py b/app/utils/models.py index d11f359..d2bbf80 100644 --- a/app/utils/models.py +++ b/app/utils/models.py @@ -110,7 +110,7 @@ def post_bot_message(package: Package, title: str, message: str): thread.title = "Bot messages for {}".format(package.title) thread.author = system_user thread.private = True - thread.watchers.append(package.author) + thread.watchers.extend(package.maintainers) db.session.add(thread) db.session.flush()