From: Michael Tremer Date: Wed, 12 Feb 2025 11:24:41 +0000 (+0000) Subject: builds: Add a new package listing X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9be5f7ca88710d4e314a07e5a2ca6ec628ca8904;p=pbs.git builds: Add a new package listing This is a lot cleaner and combines packages from all architectures which massively saves space on the page. Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/builds.py b/src/buildservice/builds.py index 34fd8237..7023982f 100644 --- a/src/buildservice/builds.py +++ b/src/buildservice/builds.py @@ -596,6 +596,21 @@ class Build(database.Base, database.BackendMixin, database.SoftDeleteMixin): elif any((j.has_failed() for j in self.jobs)): return await self.finished(success=False) + # Packages + + @property + def packages(self): + """ + Returns a list of all built packages + """ + # Collect all packages + packages = itertools.chain(*(job.packages for job in self.jobs)) + + packages = { pkg.nevra : pkg for pkg in packages } + + # Return as list + return packages.values() + ## Comment stuff async def comment(self, **kwargs): diff --git a/src/buildservice/packages.py b/src/buildservice/packages.py index 65f78422..045eac28 100644 --- a/src/buildservice/packages.py +++ b/src/buildservice/packages.py @@ -283,6 +283,12 @@ class Package(database.Base, database.BackendMixin, database.SoftDeleteMixin): uuid = Column(UUID, nullable=False) + # Link + + @property + def link(self): + return "/packages/%s" % self.uuid + # Created At created_at = Column( diff --git a/src/templates/builds/macros.html b/src/templates/builds/macros.html index 63120d5d..57fb5768 100644 --- a/src/templates/builds/macros.html +++ b/src/templates/builds/macros.html @@ -140,6 +140,51 @@ {% endif %} {% endmacro %} +{% macro BuildPackages(packages) %} +
+ {% for name, pkgs_by_name in packages | groupby("name") %} + {% for pkg in pkgs_by_name %} +
+
+
+
+
+

+ {{ pkg.name }} +

+ + {# Show the summary in a second line #} +

+ + {{ pkg.summary }} + +

+
+
+
+ +
+ {% for arch, pkgs_by_arch in pkgs_by_name | groupby("arch") %} + {% for p in pkgs_by_arch %} + + {% endfor %} + {% endfor %} +
+
+
+ + {% break %} + {% endfor %} + {% endfor %} +
+{% endmacro %} + {% macro BuildWatchers(build, watchers=None) %} {% if watchers is none %} {% set watchers = build.get_watchers() %} diff --git a/src/templates/builds/show.html b/src/templates/builds/show.html index 3287ce19..47258240 100644 --- a/src/templates/builds/show.html +++ b/src/templates/builds/show.html @@ -2,7 +2,7 @@ {% from "macros.html" import Text with context %} {% from "bugs/macros.html" import BugList with context %} -{% from "builds/macros.html" import BuildWatchers with context %} +{% from "builds/macros.html" import BuildPackages, BuildWatchers with context %} {% from "builds/groups/macros.html" import BuildGroupList with context %} {% from "events/macros.html" import EventList with context %} {% from "jobs/macros.html" import JobList with context %} @@ -134,6 +134,19 @@ + {# Packages #} + {% if build.packages %} +
+
+
+ {{ _("Packages") }} +
+ + {{ BuildPackages(build.packages) }} +
+
+ {% endif %} + {% if build.jobs %}