From 1b42f3310a8d19145aa1c870794e394851921083 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sun, 8 Jul 2018 17:28:39 +0100 Subject: [PATCH] Add admin feature to bulk create releases --- app/templates/admin/list.html | 3 ++- app/views/admin.py | 25 +++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/app/templates/admin/list.html b/app/templates/admin/list.html index d307293..4763bdc 100644 --- a/app/templates/admin/list.html +++ b/app/templates/admin/list.html @@ -21,7 +21,8 @@ - + + diff --git a/app/views/admin.py b/app/views/admin.py index 532b642..029d4c9 100644 --- a/app/views/admin.py +++ b/app/views/admin.py @@ -20,11 +20,13 @@ from flask_user import * from flask.ext import menu from app import app from app.models import * -from app.tasks.importtasks import importRepoScreenshot, importAllDependencies +from celery import uuid +from app.tasks.importtasks import importRepoScreenshot, importAllDependencies, makeVCSRelease from app.tasks.forumtasks import importTopicList from flask_wtf import FlaskForm from wtforms import * -from app.utils import loginUser, rank_required +from app.utils import loginUser, rank_required, triggerNotif +import datetime @app.route("/admin/", methods=["GET", "POST"]) @rank_required(UserRank.ADMIN) @@ -70,6 +72,25 @@ def admin_page(): db.session.commit() return redirect(url_for("admin_page")) + elif action == "vcsrelease": + for package in Package.query.filter(Package.repo.isnot(None)).all(): + if package.releases.count() != 0: + continue + + rel = PackageRelease() + rel.package = package + rel.title = datetime.date.today().isoformat() + rel.url = "" + rel.task_id = uuid() + rel.approved = True + db.session.add(rel) + db.session.commit() + + makeVCSRelease.apply_async((rel.id, "master"), task_id=rel.task_id) + + msg = "{}: Release {} created".format(package.title, rel.title) + triggerNotif(package.author, current_user, msg, rel.getEditURL()) + db.session.commit() else: flash("Unknown action: " + action, "error")