From b29f60f64c965ce58ae823a7a2314cf892a25008 Mon Sep 17 00:00:00 2001 From: Frédéric Buclin Date: Wed, 28 Jul 2010 19:02:32 +0200 Subject: Bug 396558: Dependency change e-mails should only include status changes that happened right now r/a=mkanat --- Bugzilla/Bug.pm | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'Bugzilla/Bug.pm') diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index fce2a1634..6638573c6 100644 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -1154,14 +1154,22 @@ sub send_changes { # If there were changes in dependencies, we need to notify those # dependencies. - my %notify_deps; if ($changes->{'bug_status'}) { my ($old_status, $new_status) = @{ $changes->{'bug_status'} }; # If this bug has changed from opened to closed or vice-versa, # then all of the bugs we block need to be notified. if (is_open_state($old_status) ne is_open_state($new_status)) { - $notify_deps{$_} = 1 foreach (@{ $self->blocked }); + my $params = { forced => { changer => $user }, + type => 'dep', + dep_only => 1, + blocker => $self, + changes => $changes }; + + foreach my $id (@{ $self->blocked }) { + $params->{id} = $id; + _send_bugmail($params, $vars); + } } } @@ -1177,8 +1185,7 @@ sub send_changes { # an error later. delete $changed_deps{''}; - my %all_dep_changes = (%notify_deps, %changed_deps); - foreach my $id (sort { $a <=> $b } (keys %all_dep_changes)) { + foreach my $id (sort { $a <=> $b } (keys %changed_deps)) { _send_bugmail({ forced => { changer => $user }, type => "dep", id => $id }, $vars); } @@ -1188,7 +1195,7 @@ sub _send_bugmail { my ($params, $vars) = @_; my $results = - Bugzilla::BugMail::Send($params->{'id'}, $params->{'forced'}); + Bugzilla::BugMail::Send($params->{'id'}, $params->{'forced'}, $params); if (Bugzilla->usage_mode == USAGE_MODE_BROWSER) { my $template = Bugzilla->template; -- cgit v1.2.3-24-g4f1b