From: Michael Tremer Date: Tue, 28 Jun 2022 09:51:44 +0000 (+0000) Subject: packages: Refactor package listing X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58af4feaf3d63ffa6907a9dda005e63a352367e4;p=pbs.git packages: Refactor package listing Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/packages.py b/src/buildservice/packages.py index 1ea841cb..c374126a 100644 --- a/src/buildservice/packages.py +++ b/src/buildservice/packages.py @@ -30,18 +30,31 @@ class Packages(base.Object): for row in res: yield Package(self.backend, row.id, data=row) - def get_by_id(self, pkg_id): - return self._get_package("SELECT * FROM packages \ - WHERE id = %s", pkg_id) - def get_list(self): """ Returns a list with all package names and the summary line that have at one time been part of the distribution """ - return self.db.query("SELECT DISTINCT packages.name AS name, packages.summary AS summary FROM builds \ - LEFT JOIN packages ON builds.pkg_id = packages.id \ - WHERE builds.type = %s AND builds.state != %s", "release", "obsolete") + return self.db.query(""" + SELECT + DISTINCT ON (packages.name) + packages.name AS name, + packages.summary AS summary, + packages.created_at + FROM + packages + WHERE + deleted IS FALSE + AND + arch = %s + ORDER BY + name, created_at DESC""", + "src", + ) + + def get_by_id(self, pkg_id): + return self._get_package("SELECT * FROM packages \ + WHERE id = %s", pkg_id) def get_by_uuid(self, uuid): return self._get_package("""