]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 782210: If a custom field depends on a product, component or classification,...
authorPami Ketolainen <pami.ketolainen@jollamobile.com>
Tue, 16 Apr 2013 10:12:15 +0000 (12:12 +0200)
committerFrédéric Buclin <LpSolit@gmail.com>
Tue, 16 Apr 2013 10:12:15 +0000 (12:12 +0200)
r/a=LpSolit

Bugzilla/Bug.pm
Bugzilla/Field/ChoiceInterface.pm

index fef7127d7e873a01834b99f2dab7ef6ed42ed9fc..576ce9d52206ecd4ebf0bcbf793b5bf57a99e219 100644 (file)
@@ -747,6 +747,17 @@ sub run_create_validators {
     my $class  = shift;
     my $params = $class->SUPER::run_create_validators(@_);
 
+    # Add classification for checking mandatory fields which depend on it
+    $params->{classification} = $params->{product}->classification->name;
+
+    my @mandatory_fields = @{ Bugzilla->fields({ is_mandatory => 1,
+                                                 enter_bug    => 1,
+                                                 obsolete     => 0 }) };
+    foreach my $field (@mandatory_fields) {
+        $class->_check_field_is_mandatory($params->{$field->name}, $field,
+                                          $params);
+    }
+
     my $product = delete $params->{product};
     $params->{product_id} = $product->id;
     my $component = delete $params->{component};
@@ -766,18 +777,11 @@ sub run_create_validators {
     # You can't set these fields.
     delete $params->{lastdiffed};
     delete $params->{bug_id};
+    delete $params->{classification};
 
     Bugzilla::Hook::process('bug_end_of_create_validators',
                             { params => $params });
 
-    my @mandatory_fields = @{ Bugzilla->fields({ is_mandatory => 1,
-                                                 enter_bug    => 1,
-                                                 obsolete     => 0 }) };
-    foreach my $field (@mandatory_fields) {
-        $class->_check_field_is_mandatory($params->{$field->name}, $field,
-                                          $params);
-    }
-
     # And this is not a valid DB field, it's just used as part of 
     # _check_dependencies to avoid running it twice for both blocked 
     # and dependson.
index 24bd57dc9135d925240d62491ce4b89e2f3a29e0..f7f5e3b7330ce1c8be038b031dca1da81cb653d1 100644 (file)
@@ -171,6 +171,7 @@ sub is_set_on_bug {
     # This allows bug/create/create.html.tmpl to pass in a hashref that 
     # looks like a bug object.
     my $value = blessed($bug) ? $bug->$field_name : $bug->{$field_name};
+    $value = $value->name if blessed($value);
     return 0 if !defined $value;
 
     if ($self->field->type == FIELD_TYPE_BUG_URLS