]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 595569: Fixes Bugzilla::Field::ChoiceInterface->controls_visibility_of_fields
authorTiago Mello <timello@gmail.com>
Mon, 18 Oct 2010 21:18:58 +0000 (19:18 -0200)
committerTiago Mello <timello@gmail.com>
Mon, 18 Oct 2010 21:18:58 +0000 (19:18 -0200)
method which was causing an error when deleting a product/component.
r/a=mkanat

Bugzilla/Field/ChoiceInterface.pm

index 894ce00d38ddfdca4df4027a47649627f73fbcb2..87354a1036d16af90ee1df1f96f73dd07fa31c0a 100644 (file)
@@ -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 {