+++ /dev/null
-{% extends "base.html" %}
-
-{% block title %}{{ _("Bug list") }}: {{ build.name }}{% end block %}
-
-{% block body %}
- <ul class="breadcrumb">
- <li>
- <a href="/">{{ _("Home") }}</a>
- <span class="divider">/</span>
- </li>
- <li>
- <a href="/packages">{{ _("Packages") }}</a>
- <span class="divider">/</span>
- </li>
- <li>
- <a href="/package/{{ build.pkg.name }}">{{ build.pkg.name }}</a>
- <span class="divider">/</span>
- </li>
- <li class="active">
- <a href="/build/{{ build.uuid }}">{{ build.pkg.friendly_version }}</a>
- </li>
- </ul>
-
- {% module BuildHeadline(build, short=True) %}
-
- <div class="row">
- <div class="span8 offset2">
- {% if fixed_bugs %}
- <h2>{{ _("Fixed bugs") }}</h2>
- {% module BugsTable(pkg, fixed_bugs) %}
- {% else %}
- <p>
- {{ _("No bugs here, yet.") }}
- {{ _("Click below to add one.") }
- </p>
- {% end %}
- </div>
- </div>
-
- <div class="row">
- <div class="span8 offset2">
- <div class="btn-toolbar pull-right">
- <div class="btn-group">
- <a class="btn" href="#add" data-toggle="modal">
- {{ _("Add") }}
- </a>
-
- {% if fixed_bugs %}
- <a class="btn" href="#rem" data-toggle="modal">
- {{ _("Remove") }}
- </a>
- {% end %}
- </div>
-
- <div class="btn-group">
- <a class="btn" href="/build/{{ build.uuid }}">
- {{ _("Back") }}
- </a>
- </div>
- </div>
- </div>
- </div>
-
- <div class="modal hide fade" id="add">
- <form class="modal-form form-horizontal" method="POST" action="">
- {% raw xsrf_form_html() %}
- <input type="hidden" name="action" value="add" />
-
- <div class="modal-header">
- <a class="close" data-dismiss="modal">×</a>
- <h3>{{ _("Add a bug") }}</h3>
- </div>
-
- <div class="modal-body">
- <fieldset>
- <div class="control-group">
- <label class="control-label" for="bugid">{{ _("Bug ID") }}</label>
- <div class="controls">
- <div class="input-prepend">
- <span class="add-on">#</span><input class="span2" id="bugid" name="bugid" size="16" type="text">
- </div>
-
- <p class="help-block">
- {{ _("Enter a bug ID.") }}
- </p>
- </div>
- </div>
- </fieldset>
-
- {% if open_bugs %}
- <hr />
- <p>
- {{ _("This is a list of more open bugs of this package.") }}
- </p>
- <p>
- {{ _("Maybe you want to pick one of these.") }}
- </p>
-
- <table class="table table-condensed">
- {% for bug in open_bugs %}
- <tr>
- <td>
- #{{ bug.id }} - {{ bug.status }}
- </td>
- <td>
- {{ bug.summary }}
- </td>
- </tr>
- {% end %}
- </table>
- {% end %}
- </div>
-
- <div class="modal-footer">
- <button type="submit" class="btn btn-primary">{{ _("Add bug") }}</button>
- <a class="btn" href="#" data-dismiss="modal">{{ _("Cancel") }}</a>
- </div>
- </form>
- </div>
-
- <div class="modal hide fade" id="rem">
- <form class="modal-form form-horizontal" method="POST" action="">
- {% raw xsrf_form_html() %}
- <input type="hidden" name="action" value="remove" />
-
- <div class="modal-header">
- <a class="close" data-dismiss="modal">×</a>
- <h3>{{ _("Remove a bug") }}</h3>
- </div>
-
- <div class="modal-body">
- <fieldset>
- <div class="control-group">
- <label class="control-label" for="bugid">{{ _("Bug ID") }}</label>
- <div class="controls">
- <div class="input-prepend">
- <span class="add-on">#</span><input class="span2" id="bugid" name="bugid" size="16" type="text">
- </div>
-
- <p class="help-block">
- {{ _("Enter a bug ID from the list below.") }}
- </p>
- </div>
- </div>
- </fieldset>
-
- {% if fixed_bugs %}
- <table class="table table-condensed">
- {% for bug in fixed_bugs %}
- <tr>
- <td>
- #{{ bug.id }} - {{ bug.status }}
- </td>
- <td>
- {{ bug.summary }}
- </td>
- </tr>
- {% end %}
- </table>
- {% end %}
- </div>
-
- <div class="modal-footer">
- <button type="submit" class="btn btn-primary">{{ _("Remove bug") }}</button>
- <a class="btn" href="#" data-dismiss="modal">{{ _("Cancel") }}</a>
- </div>
- </form>
- </div>
-{% end block %}
self.render("build-delete.html", build=build)
-class BuildBugsHandler(base.BaseHandler):
- @tornado.web.authenticated
- def get(self, uuid):
- build = self.backend.builds.get_by_uuid(uuid)
- if not build:
- raise tornado.web.HTTPError(404, "No such build: %s" % uuid)
-
- # Check if the user has got the right to alter this build.
- if not build.has_perm(self.current_user):
- raise tornado.web.HTTPError(403)
-
- # Bugs.
- fixed_bugs = build.get_bugs()
- open_bugs = []
-
- for bug in self.backend.bugzilla.get_bugs_from_component(build.pkg.name):
- if bug in fixed_bugs:
- continue
-
- open_bugs.append(bug)
-
- self.render("build-bugs.html", build=build, pkg=build.pkg,
- fixed_bugs=fixed_bugs, open_bugs=open_bugs)
-
- @tornado.web.authenticated
- def post(self, uuid):
- build = self.backend.builds.get_by_uuid(uuid)
- if not build:
- raise tornado.web.HTTPError(404, "No such build: %s" % uuid)
-
- # Check if the user has got the right to alter this build.
- if not build.has_perm(self.current_user):
- raise tornado.web.HTTPError(403)
-
- action = self.get_argument("action", None)
- bugid = self.get_argument("bugid")
-
- # Convert the bug id to integer.
- try:
- bugid = int(bugid)
- except ValueError:
- raise tornado.web.HTTPError(400, "Bad bug id given: %s" % bugid)
-
- if action == "add":
- # Add bug to the build.
- build.add_bug(bugid, user=self.current_user)
-
- elif action == "remove":
- # Remove bug from the build.
- build.rem_bug(bugid, user=self.current_user)
-
- else:
- raise tornado.web.HTTPError(400, "Unhandled action: %s" % action)
-
- self.redirect("/build/%s/bugs" % build.uuid)
-
-
class BuildStateHandler(base.BaseHandler):
def get(self, uuid):
build = self.backend.builds.get_by_uuid(uuid)