$qa_contact = trim($qa_contact) if !ref $qa_contact;
my $component = blessed($invocant) ? $invocant->component_obj
: $params->{component};
- my $id;
if (!ref $invocant) {
# Bugs get no QA Contact on creation if useqacontact is off.
return undef if !Bugzilla->params->{useqacontact};
if (!Bugzilla->user->in_group('editbugs', $component->product_id)
|| !$qa_contact)
{
- $id = $component->default_qa_contact->id;
+ return $component->default_qa_contact ? $component->default_qa_contact->id : undef;
}
}
-
+
# If a QA Contact was specified or if we're updating, check
# the QA Contact for validity.
- if (!defined $id && $qa_contact) {
+ my $id;
+ if ($qa_contact) {
$qa_contact = Bugzilla::User->check($qa_contact) if !ref $qa_contact;
$id = $qa_contact->id;
# create() checks this another way, so we don't have to run this
if (Bugzilla->params->{'useqacontact'} && $self->{'qa_contact'}) {
$self->{'qa_contact_obj'} = new Bugzilla::User($self->{'qa_contact'});
} else {
- # XXX - This is somewhat inconsistent with the assignee/reporter
- # methods, which will return an empty User if they get a 0.
- # However, we're keeping it this way now, for backwards-compatibility.
$self->{'qa_contact_obj'} = undef;
}
return $self->{'qa_contact_obj'};
sub default_qa_contact {
my $self = shift;
+ return if !$self->{'initialqacontact'};
+
if (!defined $self->{'default_qa_contact'}) {
$self->{'default_qa_contact'} =
new Bugzilla::User($self->{'initialqacontact'});
Params: none.
- Returns: A Bugzilla::User object.
+ Returns: A Bugzilla::User object if the default QA contact is defined for
+ the component. Otherwise, returns undef.
=item C<initial_cc>
$self->type('string' , $component->description),
default_assigned_to =>
$self->type('string' , $component->default_assignee->login),
- default_qa_contact =>
- $self->type('string' , $component->default_qa_contact->login),
+ default_qa_contact =>
+ $self->type('string' , $component->default_qa_contact ?
+ $component->default_qa_contact->login : ''),
sort_key => # sort_key is returned to match Bug.fields
0,
is_active =>
=item C<default_qa_contact>
C<string> The login name of the user who will be set as the QA Contact for
-new bugs by default.
+new bugs by default. Empty string if the QA contact is not defined.
=item C<sort_key>
push( @values, $qa_contact );
}
else {
- push( @values, $component->default_qa_contact->id || undef );
- if ($component->default_qa_contact->id){
+ push(@values, $component->default_qa_contact ?
+ $component->default_qa_contact->id : undef);
+
+ if ($component->default_qa_contact) {
$err .= "Setting qa contact to the default for this product.\n";
$err .= " This bug either had no qa contact or an invalid one.\n";
}
<li>Default assignee updated to '[% comp.default_assignee.login FILTER html %]'</li>
[% END %]
[% IF changes.initialqacontact.defined %]
- [% IF comp.default_qa_contact.id %]
+ [% IF comp.default_qa_contact %]
<li>Default QA contact updated to '[% comp.default_qa_contact.login FILTER html %]'</li>
[% ELSE %]
<li>Default QA contact deleted</li>
</td>
[% IF Param("useqacontact") %]
<td class="component_qa_contact">
- [% INCLUDE global/user.html.tmpl who = comp.default_qa_contact %]
+ [% IF comp.default_qa_contact %]
+ [% INCLUDE global/user.html.tmpl who = comp.default_qa_contact %]
+ [% END %]
</td>
[% END %]
</tr>