Add maintained packages to user profile

This commit is contained in:
rubenwardy 2021-07-25 18:42:11 +01:00
parent 95bd1a50d9
commit 33aedb233d
2 changed files with 22 additions and 5 deletions

@ -49,10 +49,17 @@ def profile(username):
if not user:
abort(404)
packages = user.packages.filter(Package.state != PackageState.DELETED)
if not current_user.is_authenticated or (user != current_user and not current_user.canAccessTodoList()):
packages = packages.filter_by(state=PackageState.APPROVED)
packages = packages.order_by(db.asc(Package.title))
packages = user.packages.filter_by(state=PackageState.APPROVED)
maintained_packages = user.maintained_packages.filter_by(state=PackageState.APPROVED)
else:
packages = user.packages.filter(Package.state != PackageState.DELETED)
maintained_packages = user.maintained_packages.filter(Package.state != PackageState.DELETED)
packages = packages.order_by(db.asc(Package.title)).all()
maintained_packages = maintained_packages \
.filter(Package.author != user) \
.order_by(db.asc(Package.title)).all()
users_by_reviews = db.session.query(User.username, func.count(PackageReview.id).label("count")) \
.select_from(User).join(PackageReview) \
@ -69,7 +76,7 @@ def profile(username):
total_downloads = db.session.query(func.sum(Package.downloads)) \
.select_from(User) \
.join(User.maintained_packages) \
.join(User.packages) \
.filter(User.id == user.id, Package.state == PackageState.APPROVED).scalar() or 0
all_package_ranks = db.session.query(
@ -82,7 +89,8 @@ def profile(username):
min_package_rank = user_package_ranks[1] if user_package_ranks else None
# Process GET or invalid POST
return render_template("users/profile.html", user=user, packages=packages,
return render_template("users/profile.html", user=user,
packages=packages, maintained_packages=maintained_packages,
total_downloads=total_downloads, min_package_rank=min_package_rank,
review_idx=review_idx, review_percent=review_percent)

@ -275,6 +275,15 @@
{{ render_pkggrid(packages, show_author=False) }}
{% if maintained_packages %}
<h2 class="my-3">{{ _("Maintained Packages") }}</h2>
<p class="text-muted">
{{ _("This user is also a maintainer of the following packages") }}
</p>
{{ render_pkggrid(maintained_packages) }}
{% endif %}
<h2 class="my-3" id="reviews">{{ _("Reviews") }}</h2>
{% from "macros/reviews.html" import render_reviews %}
{{ render_reviews(user.reviews, current_user, True) }}