)
.label("_number"),
)
- .join(Build.pkg)
+ .join(
+ packages.Package,
+ packages.Package.id == Build.pkg_id,
+ )
.where(
Build.deleted_at == None,
Build.owner_id == None,
)
stmt = (
- sqlalchemy.select(Build)
+ sqlalchemy
+ .select(
+ Build,
+ )
.select_from(cte)
- .order_by(cte.c._number)
+ .order_by(
+ cte.c._number,
+ )
.limit(limit)
)
</ul>
</nav>
- <h1 class="title is-1">{{ package.name }}</h1>
- <h4 class="subtitle is-4">{{ _("Builds") }}</h4>
+ <h1 class="title is-1">
+ {{ package.name }}
+ </h1>
+
+ <h4 class="subtitle is-4">
+ {{ _("Builds") }}
+ </h4>
</div>
</div>
</section>
{# Release Builds #}
- {% if distros %}
+ {% if release_builds %}
<section class="section">
<div class="container">
<h4 class="title is-4">{{ _("Release Builds") }}</h4>
- {% for distro in distros | sort(reverse=True) %}
+ {% for distro, builds in release_builds | groupby("distro") %}
<h5 class="title is-5">{{ distro }}</h5>
- {{ BuildList(distros[distro], limit=limit,
- more_url=make_url("/builds", name=package.name)) }}
+ {{ BuildList(builds, more_url=make_url("/builds", name=package.name)) }}
{% endfor %}
</div>
</section>
{% endif %}
{# Scratch Builds #}
- {% if users %}
+ {% if scratch_builds %}
<section class="section">
<div class="container">
<h4 class="title is-4">{{ _("Scratch Builds") }}</h4>
- {% for user in users %}
+ {% for user, builds in scratch_builds | groupby("owner") %}
<h5 class="title is-5">{{ user }}</h5>
- {{ BuildList(users[user], limit=limit,
- more_url=make_url("/builds", name=package.name, user=user.name)) }}
+ {{ BuildList(builds, more_url=make_url("/builds", name=package.name, user=user.name)) }}
{% endfor %}
</div>
</section>
limit = self.get_argument_int("limit", 5)
# Find the latest release builds
- release_builds = self.backend.builds.get_release_builds_by_name(name)
-
- # Group them by distribution
- distros = await misc.group(release_builds, lambda build: build.distro)
+ release_builds = await self.backend.builds.get(name, scratch=False, limit=limit)
# Find the latest scratch builds
- scratch_builds = self.backend.builds.get_scratch_builds_by_name(name)
-
- # Group them by user
- users = await misc.group(scratch_builds, lambda build: build.owner)
+ scratch_builds = await self.backend.builds.get(name, scratch=True)
await self.render("packages/name/builds.html", limit=limit,
- package=build.pkg, distros=distros, users=users)
+ package=build.pkg, release_builds=release_builds, scratch_builds=scratch_builds)
class ShowHandler(base.BaseHandler):