From: Michael Tremer Date: Wed, 22 Jun 2022 08:59:54 +0000 (+0000) Subject: packages: Fetch only the latest build X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=10af5d32ef5197bb039c458156a2e0a671f9a890;p=pbs.git packages: Fetch only the latest build Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/builds.py b/src/buildservice/builds.py index 112e0630..65fb060a 100644 --- a/src/buildservice/builds.py +++ b/src/buildservice/builds.py @@ -104,34 +104,23 @@ class Builds(base.Object): return [Build(self.backend, b.id, b) for b in self.db.query(query, *args)] def get_latest_by_name(self, name): - return self._get_build("SELECT builds.* FROM builds \ - LEFT JOIN packages ON builds.pkg_id = packages.id \ - WHERE packages.name = %s ORDER BY builds.time_created DESC \ - LIMIT 1", name) - - def get_active_builds(self, name): """ - Returns a list of all builds that are in a repository - and the successors of the latest builds. + Returns the latest build that matches the package name """ - builds = [] - - for distro in self.backend.distros: - for repo in distro.repositories: - builds += repo.get_builds_by_name(name) - - if builds: - # The latest build should be at the end of the list - latest_build = builds[-1] - - # We will add all successors that are not broken - builds += (b for b in latest_build.successors - if not b.is_broken() and not b in builds) - - # Order from newest to oldest - builds.reverse() - - return builds + return self._get_build(""" + SELECT + builds.* + FROM + builds + LEFT JOIN + packages ON builds.pkg_id = packages.id + WHERE + packages.name = %s + ORDER BY + builds.time_created DESC + LIMIT 1""", + name, + ) def get_obsolete(self, repo=None): """ @@ -826,15 +815,6 @@ class Build(base.DataObject): return self._update - @lazy_property - def successors(self): - builds = self.backend.builds._get_builds("SELECT builds.* FROM builds \ - LEFT JOIN packages ON builds.pkg_id = packages.id \ - WHERE packages.name = %s AND builds.type = %s AND \ - builds.time_created >= %s", self.pkg.name, "release", self.created) - - return sorted(builds) - @lazy_property def repo(self): res = self.db.get("SELECT repo_id FROM repositories_builds \ diff --git a/src/templates/package-detail-list.html b/src/templates/package-detail-list.html index b20ecde3..6a7a64d0 100644 --- a/src/templates/package-detail-list.html +++ b/src/templates/package-detail-list.html @@ -1,6 +1,6 @@ {% extends "base.html" %} -{% block title %}{{ _("Package") }} - {{ pkg.name }}{% end block %} +{% block title %}{{ _("Package") }} - {{ package.name }}{% end block %} {% block container %}