Bug 279740 : Move CountOpenDependencies out of globals.pl

Patch by Max Kanat-Alexander <mkanat@kerio.com>  r=wurblzap  a=justdave


git-svn-id: svn://10.0.0.236/trunk@168643 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
travis%sedsystems.ca 2005-02-01 17:43:26 +00:00
parent c9c6bdd186
commit 64284ff52f
3 changed files with 27 additions and 33 deletions

View File

@ -536,6 +536,32 @@ sub GetComments {
return \@comments;
}
# CountOpenDependencies counts the number of open dependent bugs for a
# list of bugs and returns a list of bug_id's and their dependency count
# It takes one parameter:
# - A list of bug numbers whose dependencies are to be checked
sub CountOpenDependencies {
my (@bug_list) = @_;
my @dependencies;
my $dbh = Bugzilla->dbh;
my $sth = $dbh->prepare(
"SELECT blocked, count(bug_status) " .
"FROM bugs, dependencies " .
"WHERE blocked IN (" . (join "," , @bug_list) . ") " .
"AND bug_id = dependson " .
"AND bug_status IN ('" . (join "','", &::OpenStates()) . "') " .
"GROUP BY blocked ");
$sth->execute();
while (my ($bug_id, $dependencies) = $sth->fetchrow_array()) {
push(@dependencies, { bug_id => $bug_id,
dependencies => $dependencies });
}
return @dependencies;
}
sub AUTOLOAD {
use vars qw($AUTOLOAD);
my $attr = $AUTOLOAD;

View File

@ -999,38 +999,6 @@ sub GetBugLink {
}
}
# CountOpenDependencies counts the number of open dependent bugs for a
# list of bugs and returns a list of bug_id's and their dependency count
# It takes one parameter:
# - A list of bug numbers whose dependencies are to be checked
sub CountOpenDependencies {
my (@bug_list) = @_;
my @dependencies;
# Make sure any unfetched data from a currently running query
# is saved off rather than overwritten
PushGlobalSQLState();
SendSQL("SELECT blocked, count(bug_status) " .
"FROM bugs, dependencies " .
"WHERE blocked IN (" . (join "," , @bug_list) . ") " .
"AND bug_id = dependson " .
"AND bug_status IN ('" . (join "','", OpenStates()) . "') " .
"GROUP BY blocked ");
while (MoreSQLData()) {
my ($bug_id, $dependencies) = FetchSQLData();
push(@dependencies, { bug_id => $bug_id,
dependencies => $dependencies });
}
# All done with this sidetrip
PopGlobalSQLState();
return @dependencies;
}
sub GetLongDescriptionAsText {
my ($id, $start, $end) = (@_);
my $result = "";

View File

@ -935,7 +935,7 @@ SWITCH: for ($::FORM{'knob'}) {
if (Param("noresolveonopenblockers")
&& $::FORM{'resolution'} eq 'FIXED')
{
my @dependencies = CountOpenDependencies(@idlist);
my @dependencies = Bugzilla::Bug::CountOpenDependencies(@idlist);
if (scalar @dependencies > 0) {
ThrowUserError("still_unresolved_bugs",
{ dependencies => \@dependencies,