From: Michael Tremer Date: Sat, 13 May 2023 11:41:01 +0000 (+0000) Subject: packages: Group bugs by distribution X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2ba44f8c6fe1413f7095c6dab2e3dc008d9b926d;p=pbs.git packages: Group bugs by distribution Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/bugtracker.py b/src/buildservice/bugtracker.py index 677b84a8..c26025d3 100644 --- a/src/buildservice/bugtracker.py +++ b/src/buildservice/bugtracker.py @@ -46,10 +46,6 @@ class Bugzilla(base.Object): """ return self.settings.get("bugzilla-url") - @property - def product(self): - return self.settings.get("bugzilla-product") - async def get_products(self): """ Returns a dictionary with all products and versions @@ -129,17 +125,19 @@ class Bugzilla(base.Object): """ return self.make_url("/show_bug.cgi", id=id) - def enter_url(self, package): + def enter_url(self, component, product=None, version=None): """ Creates an URL to create a new bug for package """ - return self.make_url("/enter_bug.cgi", product=self.product, component=package) + return self.make_url("/enter_bug.cgi", product=product, version=version, + component=component) - def list_url(self, package): + def list_url(self, component, product=None, version=None): """ Creates an URL to list all bugs for package """ - return self.make_url("/buglist.cgi", product=self.product, component=package) + return self.make_url("/buglist.cgi", product=product, version=version, + component=component) async def version(self): """ diff --git a/src/templates/packages/name.html b/src/templates/packages/name.html index c763bfdb..868cab98 100644 --- a/src/templates/packages/name.html +++ b/src/templates/packages/name.html @@ -24,7 +24,7 @@
- {% for distro in backend.distros %} + {% for distro in distros %}

{{ distro }}

@@ -57,17 +57,25 @@

{{ _("Open Bugs") }}

- +
+ {% module BugsList(bugs[distro]) %} +
+ + + {% end %}
{% end %} diff --git a/src/web/packages.py b/src/web/packages.py index c5ef43cc..6519770a 100644 --- a/src/web/packages.py +++ b/src/web/packages.py @@ -1,5 +1,6 @@ #!/usr/bin/python +import asyncio import os.path import tornado.web @@ -31,10 +32,16 @@ class NameHandler(base.BaseHandler): if not build: raise tornado.web.HTTPError(404, "Package '%s' was not found" % name) + # Fetch all distributions + distros = self.backend.distros + # Get the latest bugs from Bugzilla - bugs = await self.backend.bugzilla.search(component=name) + bugs = dict(zip(distros, await asyncio.gather( + *(self.backend.bugzilla.search(component=name, **distro.bugzilla_fields) + for distro in distros), + ))) - self.render("packages/name.html", package=build.pkg, bugs=bugs) + self.render("packages/name.html", package=build.pkg, distros=distros, bugs=bugs) class ShowHandler(base.BaseHandler):