BugzillaでCloseと同時に自分のAssignに変更するチェックボックスを追加するパッチ
2007-04-10 - 21:08最近の現実逃避ネタの一つが社内用Bugzillaいじり。いかに効率的に、(自分を含む)プログラマーがやる気をもってバグを直すようにするか、その一方でいかに自分のところにバグが辿りつかないようにするか、を考えつついじってる。
その中の一つ。なんでBugzillaについてないと思う機能の一つ。BugzillaのBugzillaには投稿されてたりするんだけど、かなり古いソースに対するパッチなので、3.0rc用に作り直した。
他にも色々いじってるんだけど、元のソースを結構いじってしまっていて、機能別にpatchを作るのがめんどくさい。BugzillaのBugzilla見てると、簡単に機能追加してもらえる雰囲気じゃないんだよな。 [追記: すでにAssignされている場合はチェックボックスを出さないようにした]
ぱっち
--- process_bug.cgi.org 2007-04-10 20:54:31.000000000 +0100
--- process_bug.cgi.org 2007-04-10 20:54:31.000000000 +0100
+++ process_bug.cgi 2007-04-10 20:52:30.000000000 +0100
@@ -1094,6 +1094,29 @@
}
ChangeResolution($bug, $cgi->param('resolution'));
+
+ if (defined $cgi->param('take_bug')
+ && trim($cgi->param('take_bug')) ne "") {
+ $assignee = $user->id;
+ if (Bugzilla->params->{"strict_isolation"}) {
+ $usercache{$assignee} ||= Bugzilla::User->new($assignee);
+ my $assign_user = $usercache{$assignee};
+ foreach my $product_id (@newprod_ids) {
+ if (!$assign_user->can_edit_product($product_id)) {
+ my $product_name = Bugzilla::Product->new($product_id)->name;
+ ThrowUserError('invalid_user_group',
+ {'users' => $assign_user->login,
+ 'product' => $product_name,
+ 'bug_id' => (scalar(@idlist) > 1)
+ ? undef : $idlist[0]
+ });
+ }
+ }
+ }
+ $::query .= ",assigned_to = ?";
+ push(@values, $assignee);
+ $assignee_checked = 1;
+ }
last SWITCH;
};
/^reassign$/ && CheckonComment( "reassign" ) && do {
--- knob.html.tmpl.org 2007-04-10 20:55:18.000000000 +0100
+++ knob.html.tmpl 2007-04-11 18:56:01.000000000 +0100
@@ -192,6 +192,9 @@
<option value="[% r FILTER html %]">[% get_resolution(r) FILTER html %]</option>
[% END %]
</select>
+ [% IF bug.assigned_to.id != user.id %]
+ <input type="checkbox" name="take_bug" value="1" />Take bug</input>
+ [% END %]
<br />
[% knum = knum + 1 %]
[% END %]
Trackback link:トラックバック用URLを生成するには、JavaScriptを有効にしてください。