From: Tiago Mello Date: Mon, 18 Oct 2010 21:18:58 +0000 (-0200) Subject: Bug 595569: Fixes Bugzilla::Field::ChoiceInterface->controls_visibility_of_fields X-Git-Tag: bugzilla-4.1.1~205 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=509189f0c586ed468287d323e03e0cd2658fd198;p=thirdparty%2Fbugzilla.git Bug 595569: Fixes Bugzilla::Field::ChoiceInterface->controls_visibility_of_fields method which was causing an error when deleting a product/component. r/a=mkanat --- diff --git a/Bugzilla/Field/ChoiceInterface.pm b/Bugzilla/Field/ChoiceInterface.pm index 894ce00d38..87354a1036 100644 --- a/Bugzilla/Field/ChoiceInterface.pm +++ b/Bugzilla/Field/ChoiceInterface.pm @@ -110,10 +110,21 @@ sub is_static { sub controls_visibility_of_fields { my $self = shift; - $self->{controls_visibility_of_fields} ||= Bugzilla::Field->match( - { visibility_field_id => $self->field->id, - visibility_value_id => $self->id }); - return $self->{controls_visibility_of_fields}; + my $dbh = Bugzilla->dbh; + + if (!$self->{controls_visibility_of_fields}) { + my $ids = $dbh->selectcol_arrayref( + "SELECT id FROM fielddefs + INNER JOIN field_visibility + ON fielddefs.id = field_visibility.field_id + WHERE value_id = ? AND visibility_field_id = ?", undef, + $self->id, $self->field->id); + + $self->{controls_visibility_of_fields} = + Bugzilla::Field->new_from_list($ids); + } + + return $self->{controls_visibility_of_fields}; } sub visibility_value {