From 8918a55e52c9badc177a791a4e70b1033c6615b7 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Tue, 10 Apr 2007 17:07:16 +0000 Subject: [PATCH] =?utf8?q?Bug=20344969:=20Remove=20hardcoded=20bug=20statu?= =?utf8?q?ses=20from=20collectstats.pl=20and=20reports.cgi=20(prepare=20th?= =?utf8?q?em=20for=20custom=20statuses)=20-=20Patch=20by=20Fr=C3=83=C2=A9d?= =?utf8?q?=C3=83=C2=A9ric=20Buclin=20=20r=3Dgerv=20a=3D?= =?utf8?q?LpSolit?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- collectstats.pl | 36 ++++++++++++++++++++---------------- reports.cgi | 2 +- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/collectstats.pl b/collectstats.pl index 7bc2b6174d..ca97c0043c 100755 --- a/collectstats.pl +++ b/collectstats.pl @@ -72,19 +72,21 @@ my $datadir = bz_locations()->{'datadir'}; my @myproducts = map {$_->name} Bugzilla::Product->get_all; unshift(@myproducts, "-All-"); -# As we can now customize the list of resolutions, looking at the actual list -# of available resolutions only is not enough as some now removed resolutions +# As we can now customize statuses and resolutions, looking at the current list +# of legal values only is not enough as some now removed statuses and resolutions # may have existed in the past, or have been renamed. We want them all. -my @resolutions = @{get_legal_field_values('resolution')}; -my $old_resolutions = - $dbh->selectcol_arrayref('SELECT bugs_activity.added +my $fields = {}; +foreach my $field ('bug_status', 'resolution') { + my $values = get_legal_field_values($field); + my $old_values = $dbh->selectcol_arrayref( + "SELECT bugs_activity.added FROM bugs_activity INNER JOIN fielddefs ON fielddefs.id = bugs_activity.fieldid - LEFT JOIN resolution - ON resolution.value = bugs_activity.added + LEFT JOIN $field + ON $field.value = bugs_activity.added WHERE fielddefs.name = ? - AND resolution.id IS NULL + AND $field.id IS NULL UNION @@ -92,19 +94,21 @@ my $old_resolutions = FROM bugs_activity INNER JOIN fielddefs ON fielddefs.id = bugs_activity.fieldid - LEFT JOIN resolution - ON resolution.value = bugs_activity.removed + LEFT JOIN $field + ON $field.value = bugs_activity.removed WHERE fielddefs.name = ? - AND resolution.id IS NULL', - undef, ('resolution', 'resolution')); + AND $field.id IS NULL", + undef, ($field, $field)); -push(@resolutions, @$old_resolutions); + push(@$values, @$old_values); + $fields->{$field} = $values; +} + +my @statuses = @{$fields->{'bug_status'}}; +my @resolutions = @{$fields->{'resolution'}}; # Exclude "" from the resolution list. @resolutions = grep {$_} @resolutions; -# Actually, the list of statuses is predefined. This will change in the near future. -my @statuses = qw(NEW ASSIGNED REOPENED UNCONFIRMED RESOLVED VERIFIED CLOSED); - my $tstart = time; foreach (@myproducts) { my $dir = "$datadir/mining"; diff --git a/reports.cgi b/reports.cgi index 2c9f8facc4..0be2ab64ba 100755 --- a/reports.cgi +++ b/reports.cgi @@ -75,7 +75,7 @@ if (! defined $cgi->param('product')) { || ThrowCodeError('chart_dir_nonexistent', {dir => $dir, graph_dir => $graph_dir}); - my %default_sel = map { $_ => 1 } qw/UNCONFIRMED NEW ASSIGNED REOPENED/; + my %default_sel = map { $_ => 1 } BUG_STATE_OPEN; my @datasets; my @data = get_data($dir); -- 2.47.3