diff options
-rwxr-xr-x | collectstats.pl | 36 | ||||
-rwxr-xr-x | reports.cgi | 2 |
2 files changed, 21 insertions, 17 deletions
diff --git a/collectstats.pl b/collectstats.pl index 7bc2b6174..ca97c0043 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 2c9f8facc..0be2ab64b 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); |