]> git.ipfire.org Git - pbs.git/commitdiff
Only show active builds on package overview.
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 15 Feb 2013 14:05:21 +0000 (15:05 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 15 Feb 2013 14:05:21 +0000 (15:05 +0100)
backend/builds.py
data/templates/package-detail-list.html
web/handlers_packages.py

index e67be2fab540d5bfcde5d5407668cca8430e7285..317f5354323e518a81282f9d007daf0ea66561b8 100644 (file)
@@ -166,6 +166,34 @@ class Builds(base.Object):
 
                        return builds[0]
 
+       def get_active_builds(self, name, public=None):
+               query = "\
+                       SELECT builds.* FROM builds \
+                               LEFT JOIN packages ON builds.pkg_id = packages.id \
+                       WHERE packages.name = %s"
+               args = [name,]
+
+               if public is True:
+                       query += " AND builds.public = %s"
+                       args.append("Y")
+               elif public is False:
+                       query += " AND builds.public = %s"
+                       args.append("N")
+
+               query += " AND builds.id IN ( \
+                       SELECT build_id FROM repositories_builds \
+               )"
+
+               builds = []
+               for row in self.db.query(query, *args):
+                       b = Build(self.pakfire, row.id, row)
+                       builds.append(b)
+
+               # Sort the result. Lastest build first.
+               builds.sort(reverse=True)
+
+               return builds
+
        def count(self):
                count = self.cache.get("builds_count")
                if count is None:
index eefd720c956a073d27be7d48f625969626706336..e1a2cf957385f05981c9a48a18a91b7f570fceeb 100644 (file)
@@ -50,7 +50,7 @@
                </div>
 
                <div class="span6">
-                       {% module Changelog(name=name, limit=2) %}
+                       {% module Changelog(builds=builds) %}
 
                        <p class="ac">
                                <a href="/package/{{ name }}/changelog">{{ _("Full changelog") }}</a>
index 6e68a034b05b1f343956e4add44b2e7be9296a39..a774daf82d9ab3c505769ad359191028d9d78075 100644 (file)
@@ -50,20 +50,18 @@ class PackageListHandler(BaseHandler):
 
 class PackageNameHandler(BaseHandler):
        def get(self, name):
-               latest_build = self.pakfire.builds.get_latest_by_name(name, public=self.public)
-
-               if not latest_build:
+               builds = self.pakfire.builds.get_active_builds(name, public=self.public)
+               if not builds:
                        raise tornado.web.HTTPError(404, "Package '%s' was not found" % name)
 
-               # Get the average build times of this package.
-               build_times = self.pakfire.packages.get_avg_build_times(name)
+               # Get the latest build to show the package meta information.
+               latest_build = builds[0]
 
                # Get the latest bugs from bugzilla.
                bugs = self.pakfire.bugzilla.get_bugs_from_component(name)
 
-               self.render("package-detail-list.html", name=name,
-                       latest_build=latest_build, pkg=latest_build.pkg,
-                       build_times=build_times, bugs=bugs)
+               self.render("package-detail-list.html", name=name, builds=builds,
+                       latest_build=latest_build, pkg=latest_build.pkg, bugs=bugs)
 
 
 class PackageChangelogHandler(BaseHandler):