Fix some places where products.defaultmilestone was used

master
Vitaliy Filippov 2014-04-15 15:39:53 +04:00
parent 082cb4df74
commit 684a8cde1a
8 changed files with 30 additions and 10 deletions

View File

@ -1986,7 +1986,7 @@ sub _set_target_milestone
# FIXME This if() is dead because of check_field_permission.
if (!$self->check_can_change_field('target_milestone', 0, 1))
{
$self->{target_milestone_obj} = Bugzilla::Milestone->new($product->default_milestone);
$self->{target_milestone_obj} = $product->default_milestone_obj;
return $self->{target_milestone_obj}->id;
}
if ((!defined $target || !length $target) && Bugzilla->get_field('target_milestone')->nullable)

View File

@ -188,6 +188,15 @@ sub update {
# Yet do not call its update() for the future
my ($changes, $old_self) = Bugzilla::Object::update($self, @_);
# Convert default milestone to name
if ($changes->{defaultmilestone})
{
$changes->{defaultmilestone} = [
$changes->{defaultmilestone}->[0] ? Bugzilla::Milestone->new($changes->{defaultmilestone}->[0])->name : '',
$changes->{defaultmilestone}->[1] ? Bugzilla::Milestone->new($changes->{defaultmilestone}->[1])->name : '',
];
}
# We also have to fix votes. # FIXME WTF?
my @msgs; # Will store emails to send to voters.
if ($changes->{maxvotesperbug} || $changes->{votesperuser} || $changes->{votestoconfirm}) {
@ -583,6 +592,7 @@ sub _check_default_milestone
);
$milestone = $mil_obj->id;
}
delete $invocant->{default_milestone_obj};
return $milestone;
}
@ -1015,6 +1025,16 @@ sub cc_group { return $_[0]->{'cc_group'}; }
#### Subroutines ######
###############################
sub default_milestone_obj
{
my $self = shift;
if (!exists $self->{default_milestone_obj} && $self->default_milestone)
{
$self->{default_milestone_obj} = Bugzilla::Milestone->new($self->default_milestone);
}
return $self->{default_milestone_obj};
}
sub classification_obj
{
my $self = shift;

View File

@ -636,7 +636,7 @@ if (Bugzilla->params->{usetargetmilestone})
}
else
{
$default{target_milestone} = $product->default_milestone;
$default{target_milestone} = $product->default_milestone && $product->default_milestone_obj->name;
}
}

View File

@ -715,14 +715,14 @@ sub process_bug {
push( @values, $milestone->name );
}
else {
push( @values, $product->default_milestone );
push( @values, $product->default_milestone && $product->default_milestone_obj->name );
$err .= "Unknown milestone \"";
$err .= ( defined $bug_fields{'target_milestone'} )
? $bug_fields{'target_milestone'}
: "unknown";
$err .= " in product " . $product->name . ". \n";
$err .= " Setting to default milestone for this product, ";
$err .= "\"" . $product->default_milestone . "\".\n";
$err .= "\"" . ($product->default_milestone && $product->default_milestone_obj->name) . "\".\n";
}
push( @query, "target_milestone" );
}

View File

@ -660,10 +660,10 @@ DoubleCrossCheck("components", "product_id", "id",
['flagexclusions', 'product_id', 'component_id'],
['flaginclusions', 'product_id', 'component_id']);
DoubleCrossCheck("versions", "product_id", "value",
DoubleCrossCheck("versions", "product_id", "id",
["bugs", "product_id", "version", "bug_id"]);
DoubleCrossCheck("milestones", "product_id", "value",
DoubleCrossCheck("milestones", "product_id", "id",
["bugs", "product_id", "target_milestone", "bug_id"],
["products", "id", "defaultmilestone", "name"]);

View File

@ -76,7 +76,7 @@
[% END %]
entered for this milestone! When you delete this milestone,
<b><blink>ALL</blink></b> of these [% terms.bugs %] will be retargeted
to [% product.default_milestone FILTER html %], the default milestone for
to "[% product.default_milestone_obj.name FILTER html %]", the default milestone for
the [% product.name FILTER html %] product.
</td></tr>
</table>

View File

@ -76,7 +76,7 @@
%]
[%# We want to override the usual 'Delete' link for the default milestone %]
[% overrides.action.name.${product.default_milestone} = {
[% overrides.action.name.${product.default_milestone_obj.name} = {
override_content => 1
content => "(Default milestone)"
override_contentlink => 1

View File

@ -615,7 +615,7 @@
The milestone <em>[% milestone.name | html %]</em> has been deleted.
[% IF milestone.bug_count %]
[%+ terms.Bugs %] targetted to this milestone have been retargetted to
the default milestone <em>[% product.default_milestone | html %]</em>.
the default milestone <em>"[% product.default_milestone_obj.name | html %]"</em>.
[% END %]
[% END %]