From: Michael Tremer Date: Wed, 22 Jan 2025 15:23:52 +0000 (+0000) Subject: repos: Fix rendering page X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=492884db962392740df8e0bdbda3d275bad234d4;p=pbs.git repos: Fix rendering page Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/repos.py b/src/buildservice/repos.py index 7001d146..8e1b7c62 100644 --- a/src/buildservice/repos.py +++ b/src/buildservice/repos.py @@ -544,25 +544,29 @@ class Repo(database.Base, database.BackendMixin, database.SoftDeleteMixin): return await self.db.fetch_one(stmt) - @lazy_property - def total_builds(self): - res = self.db.get(""" - SELECT - COUNT(*) AS count - FROM - repository_builds - LEFT JOIN - builds ON repository_builds.build_id = builds.id - WHERE - builds.deleted_at IS NULL - AND - repository_builds.repo_id = %s - AND - repository_builds.removed_at IS NULL - """, self.id, + async def get_total_builds(self): + """ + Return the total number of builds in this repository + """ + stmt = ( + sqlalchemy + .select( + sqlalchemy.func.count().label("total_builds"), + ) + .select_from(RepoBuild) + .join( + builds.Build, + builds.Build.id == RepoBuild.build_id, + ) + .where( + builds.Build.deleted_at == None, + + RepoBuild.repo == self, + RepoBuild.removed_at == None, + ) ) - return res.count or 0 + return await self.db.select_one(stmt, "total_builds") async def get_packages(self, arch): if arch == "src": diff --git a/src/templates/repos/show.html b/src/templates/repos/show.html index 9365009c..27ce9a1b 100644 --- a/src/templates/repos/show.html +++ b/src/templates/repos/show.html @@ -52,24 +52,30 @@