diff options
author | lpsolit%gmail.com <> | 2007-01-10 00:16:54 +0000 |
---|---|---|
committer | lpsolit%gmail.com <> | 2007-01-10 00:16:54 +0000 |
commit | ed06de9de3117f8894872495e973ff812212ff91 (patch) | |
tree | bf984c70d9c46dfcad72f4044d3fac85ff93e02b | |
parent | 9366e99627f23f3c397128947433d9c7363d35a5 (diff) | |
download | bugs-ed06de9de3117f8894872495e973ff812212ff91.tar bugs-ed06de9de3117f8894872495e973ff812212ff91.tar.gz bugs-ed06de9de3117f8894872495e973ff812212ff91.tar.bz2 bugs-ed06de9de3117f8894872495e973ff812212ff91.tar.xz bugs-ed06de9de3117f8894872495e973ff812212ff91.zip |
Bug 365444: Obsolete custom fields are shown in e-mail notifications for new bugs, despite they shouldn't - Patch by Frédéric Buclin <LpSolit@gmail.com> r=mkanat a=myk
-rwxr-xr-x | Bugzilla/Bug.pm | 5 | ||||
-rw-r--r-- | Bugzilla/BugMail.pm | 17 |
2 files changed, 12 insertions, 10 deletions
diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 841b6f14f..43c430ac1 100755 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -1384,7 +1384,10 @@ sub update_comment { # Represents which fields from the bugs table are handled by process_bug.cgi. sub editable_bug_fields { my @fields = Bugzilla->dbh->bz_table_columns('bugs'); - foreach my $remove ("bug_id", "creation_ts", "delta_ts", "lastdiffed") { + # Obsolete custom fields are not editable. + my @obsolete_fields = Bugzilla->get_fields({obsolete => 1, custom => 1}); + @obsolete_fields = map { $_->name } @obsolete_fields; + foreach my $remove ("bug_id", "creation_ts", "delta_ts", "lastdiffed", @obsolete_fields) { my $location = lsearch(\@fields, $remove); splice(@fields, $location, 1); } diff --git a/Bugzilla/BugMail.pm b/Bugzilla/BugMail.pm index ca7e20b1e..9b70da03e 100644 --- a/Bugzilla/BugMail.pm +++ b/Bugzilla/BugMail.pm @@ -99,15 +99,14 @@ sub Send { my $msg = ""; my $dbh = Bugzilla->dbh; - - my $fields = $dbh->selectall_arrayref('SELECT name, description, mailhead - FROM fielddefs ORDER BY sortkey'); - - foreach my $fielddef (@$fields) { - my ($field, $description, $mailhead) = @$fielddef; - push(@headerlist, $field); - $defmailhead{$field} = $mailhead; - $fielddescription{$field} = $description; + + # XXX - These variables below are useless. We could use field object + # methods directly. But we first have to implement a cache in + # Bugzilla->get_fields to avoid querying the DB all the time. + foreach my $field (Bugzilla->get_fields({obsolete => 0})) { + push(@headerlist, $field->name); + $defmailhead{$field->name} = $field->in_new_bugmail; + $fielddescription{$field->name} = $field->description; } my %values = %{$dbh->selectrow_hashref( |