From 5db633d911bb0f83c44176fce4391f9e2898aab7 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Tue, 18 Aug 2020 14:22:16 +0100 Subject: Add ability to delete unused metapackages --- app/blueprints/admin/admin.py | 10 ++++++++++ app/blueprints/metapackages/__init__.py | 5 ++++- app/templates/admin/list.html | 10 ++++++---- app/templates/meta/list.html | 33 +++++++++++++++++++++++++++++---- 4 files changed, 49 insertions(+), 9 deletions(-) (limited to 'app') diff --git a/app/blueprints/admin/admin.py b/app/blueprints/admin/admin.py index d6f9965..50ea64f 100644 --- a/app/blueprints/admin/admin.py +++ b/app/blueprints/admin/admin.py @@ -150,6 +150,16 @@ def admin_page(): else: flash("No downloads to create", "danger") + return redirect(url_for("admin.admin_page")) + + elif action == "delmetapackages": + query = MetaPackage.query.filter(~MetaPackage.dependencies.any(), ~MetaPackage.packages.any()) + count = query.count() + query.delete(synchronize_session=False) + db.session.commit() + + flash("Deleted " + str(count) + " unused meta packages", "success") + return redirect(url_for("admin.admin_page")) else: flash("Unknown action: " + action, "danger") diff --git a/app/blueprints/metapackages/__init__.py b/app/blueprints/metapackages/__init__.py index ef9f803..6d32e65 100644 --- a/app/blueprints/metapackages/__init__.py +++ b/app/blueprints/metapackages/__init__.py @@ -24,7 +24,10 @@ from app.models import * @bp.route("/metapackages/") def list_all(): - mpackages = MetaPackage.query.order_by(db.asc(MetaPackage.name)).all() + mpackages = db.session.query(MetaPackage, func.count(MetaPackage.id)) \ + .select_from(MetaPackage).outerjoin(MetaPackage.packages) \ + .order_by(db.asc(MetaPackage.name)) \ + .group_by(MetaPackage.id).all() return render_template("meta/list.html", mpackages=mpackages) @bp.route("/metapackages//") diff --git a/app/templates/admin/list.html b/app/templates/admin/list.html index 211c86d..4f42674 100644 --- a/app/templates/admin/list.html +++ b/app/templates/admin/list.html @@ -25,15 +25,17 @@
diff --git a/app/templates/meta/list.html b/app/templates/meta/list.html index 525bafd..a2a468c 100644 --- a/app/templates/meta/list.html +++ b/app/templates/meta/list.html @@ -5,11 +5,36 @@ Meta Packages {% endblock %} {% block content %} - + {% endblock %} -- cgit v1.2.3