diff options
Diffstat (limited to 'scripts/reassign_open_bugs.pl')
-rwxr-xr-x | scripts/reassign_open_bugs.pl | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/scripts/reassign_open_bugs.pl b/scripts/reassign_open_bugs.pl index d0f107c16..bb2160381 100755 --- a/scripts/reassign_open_bugs.pl +++ b/scripts/reassign_open_bugs.pl @@ -12,8 +12,6 @@ use warnings; use lib qw(. lib local/lib/perl5); - - use Bugzilla; use Bugzilla::User; use Bugzilla::Constants; @@ -27,30 +25,30 @@ BEGIN { Bugzilla->extensions(); } Bugzilla->usage_mode(USAGE_MODE_CMDLINE); my ($from, $to); -GetOptions( - "from|f=s" => \$from, - "to|t=s" => \$to, -); +GetOptions("from|f=s" => \$from, "to|t=s" => \$to,); pod2usage(1) unless defined $from && defined $to; my $dbh = Bugzilla->dbh; my $timestamp = $dbh->selectrow_array('SELECT LOCALTIMESTAMP(0)'); -my $field = Bugzilla::Field->check({ name => 'assigned_to', cache => 1 }); -my $from_user = Bugzilla::User->check({ name => $from, cache => 1 }); -my $to_user = Bugzilla::User->check({ name => $to, cache => 1 }); +my $field = Bugzilla::Field->check({name => 'assigned_to', cache => 1}); +my $from_user = Bugzilla::User->check({name => $from, cache => 1}); +my $to_user = Bugzilla::User->check({name => $to, cache => 1}); -my $bugs = $dbh->selectcol_arrayref(q{SELECT bug_id +my $bugs = $dbh->selectcol_arrayref( + q{SELECT bug_id FROM bugs LEFT JOIN bug_status ON bug_status.value = bugs.bug_status WHERE bug_status.is_open = 1 - AND bugs.assigned_to = ?}, undef, $from_user->id); + AND bugs.assigned_to = ?}, undef, + $from_user->id +); my $bug_count = @$bugs; if ($bug_count == 0) { - warn "There are no bugs to move.\n"; - exit 1; + warn "There are no bugs to move.\n"; + exit 1; } print STDERR <<EOF; @@ -62,12 +60,16 @@ getc(); $dbh->bz_start_transaction; foreach my $bug_id (@$bugs) { - warn "Updating bug $bug_id\n"; - $dbh->do(q{INSERT INTO bugs_activity(bug_id, who, bug_when, fieldid, removed, added) - VALUES (?, ?, ?, ?, ?, ?)}, - undef, $bug_id, $to_user->id, $timestamp, $field->id, $from_user->login, $to_user->login); - $dbh->do(q{UPDATE bugs SET assigned_to = ?, delta_ts = ?, lastdiffed = ? WHERE bug_id = ?}, - undef, $to_user->id, $timestamp, $timestamp, $bug_id); + warn "Updating bug $bug_id\n"; + $dbh->do( + q{INSERT INTO bugs_activity(bug_id, who, bug_when, fieldid, removed, added) + VALUES (?, ?, ?, ?, ?, ?)}, undef, $bug_id, $to_user->id, + $timestamp, $field->id, $from_user->login, $to_user->login + ); + $dbh->do( + q{UPDATE bugs SET assigned_to = ?, delta_ts = ?, lastdiffed = ? WHERE bug_id = ?}, + undef, $to_user->id, $timestamp, $timestamp, $bug_id + ); } $from_user->clear_last_statistics_ts(); $to_user->clear_last_statistics_ts(); |