"""
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
"""
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):
"""
<section class="section">
<div class="container">
- {% for distro in backend.distros %}
+ {% for distro in distros %}
<div class="block">
<h3 class="title is-3">{{ distro }}</h3>
<div class="container">
<h4 class="title is-4">{{ _("Open Bugs") }}</h4>
- <div class="buttons are-small">
- <a class="button is-info is-outlined" href="{{ backend.bugzilla.list_url(package.name) }}">
- {{ _("Show All Bugs in Bugzilla") }}
- </a>
+ {% for distro in bugs %}
+ <h5 class="title is-5">{{ distro }}</h5>
- <a class="button is-success" href="{{ backend.bugzilla.enter_url(package.name) }}">
- {{ _("File A New Bug") }}
- </a>
- </div>
+ <div class="block">
+ {% module BugsList(bugs[distro]) %}
+ </div>
+
+ <div class="buttons are-small">
+ <a class="button is-info is-outlined"
+ href="{{ backend.bugzilla.list_url(package.name, **distro.bugzilla_fields) }}">
+ {{ _("Show All Bugs in Bugzilla") }}
+ </a>
- {% module BugsList(bugs) %}
+ <a class="button is-success"
+ href="{{ backend.bugzilla.enter_url(package.name, **distro.bugzilla_fields) }}">
+ {{ _("File A New Bug") }}
+ </a>
+ </div>
+ {% end %}
</div>
</section>
{% end %}
#!/usr/bin/python
+import asyncio
import os.path
import tornado.web
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):