From 80c5b6fadda4e77e5a48cd50e55cbe710a31ca83 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Thu, 14 Jun 2007 21:25:41 +0000 Subject: Bug 344964: enter_bug.cgi should look at the custom status workflow to get the valid initial bug statuses - Patch by Frédéric Buclin r=gerv a=justdave MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bugzilla/Status.pm | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'Bugzilla/Status.pm') diff --git a/Bugzilla/Status.pm b/Bugzilla/Status.pm index e83fd3533..e91f83871 100644 --- a/Bugzilla/Status.pm +++ b/Bugzilla/Status.pm @@ -58,14 +58,25 @@ sub can_change_to { my $self = shift; my $dbh = Bugzilla->dbh; - if (!defined $self->{'can_change_to'}) { - my $new_status_ids = $dbh->selectcol_arrayref('SELECT new_status + if (!ref($self) || !defined $self->{'can_change_to'}) { + my ($cond, @args); + if (ref($self)) { + $cond = '= ?'; + push(@args, $self->id); + } + else { + $cond = 'IS NULL'; + # Let's do it so that the code below works in all cases. + $self = {}; + } + + my $new_status_ids = $dbh->selectcol_arrayref("SELECT new_status FROM status_workflow INNER JOIN bug_status ON id = new_status WHERE isactive = 1 - AND old_status = ?', - undef, $self->id); + AND old_status $cond", + undef, @args); $self->{'can_change_to'} = Bugzilla::Status->new_from_list($new_status_ids); } -- cgit v1.2.3-24-g4f1b