summaryrefslogtreecommitdiffstats
path: root/collectstats.pl
diff options
context:
space:
mode:
authorlpsolit%gmail.com <>2007-04-10 19:07:16 +0200
committerlpsolit%gmail.com <>2007-04-10 19:07:16 +0200
commit8918a55e52c9badc177a791a4e70b1033c6615b7 (patch)
tree7a244379b60d3f084833d870b56cf622bfa29ce4 /collectstats.pl
parent49ac4e07d266ab55285e6c497cab5d17c56e8fcf (diff)
downloadbugzilla-8918a55e52c9badc177a791a4e70b1033c6615b7.tar.gz
bugzilla-8918a55e52c9badc177a791a4e70b1033c6615b7.tar.xz
Bug 344969: Remove hardcoded bug statuses from collectstats.pl and reports.cgi (prepare them for custom statuses) - Patch by Frédéric Buclin <LpSolit@gmail.com> r=gerv a=LpSolit
Diffstat (limited to 'collectstats.pl')
-rwxr-xr-xcollectstats.pl36
1 files changed, 20 insertions, 16 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";