2 # Copyright (C) 2018 rubenwardy
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
20 bp = Blueprint("metapackages", __name__)
22 from flask_user import *
23 from app.models import *
25 @bp.route("/metapackages/")
27 mpackages = db.session.query(MetaPackage, func.count(MetaPackage.id)) \
28 .select_from(MetaPackage).outerjoin(MetaPackage.packages) \
29 .order_by(db.asc(MetaPackage.name)) \
30 .group_by(MetaPackage.id).all()
31 return render_template("metapackages/list.html", mpackages=mpackages)
33 @bp.route("/metapackages/<name>/")
35 mpackage = MetaPackage.query.filter_by(name=name).first()
39 dependers = db.session.query(Package) \
40 .select_from(MetaPackage) \
41 .filter(MetaPackage.name==name) \
42 .join(MetaPackage.dependencies) \
43 .join(Dependency.depender) \
46 return render_template("metapackages/view.html", mpackage=mpackage, dependers=dependers)