summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/Flag.pm12
-rw-r--r--template/en/default/request/email.txt.tmpl13
2 files changed, 22 insertions, 3 deletions
diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm
index 19ecf7fa9..a6914a661 100644
--- a/Bugzilla/Flag.pm
+++ b/Bugzilla/Flag.pm
@@ -763,6 +763,14 @@ sub modify {
notify($flag, $bug, $attachment);
}
elsif ($status eq '?') {
+ # If the one doing the change is the requestee, then this means he doesn't
+ # want to reply to the request and he simply reassigns the request to
+ # someone else. In this case, we keep the requester unaltered.
+ my $new_setter = $setter;
+ if ($flag->requestee && $flag->requestee->id == $setter->id) {
+ $new_setter = $flag->setter;
+ }
+
# Get the requestee, if any.
my $requestee_id;
if ($requestee_email) {
@@ -782,11 +790,11 @@ sub modify {
SET setter_id = ?, requestee_id = ?,
status = ?, modification_date = ?
WHERE id = ?',
- undef, ($setter->id, $requestee_id, $status,
+ undef, ($new_setter->id, $requestee_id, $status,
$timestamp, $flag->id));
# Now update the flag object with its new values.
- $flag->{'setter'} = $setter;
+ $flag->{'setter'} = $new_setter;
$flag->{'status'} = $status;
# Send an email notifying the relevant parties about the request.
diff --git a/template/en/default/request/email.txt.tmpl b/template/en/default/request/email.txt.tmpl
index 22c1ffbd6..125439937 100644
--- a/template/en/default/request/email.txt.tmpl
+++ b/template/en/default/request/email.txt.tmpl
@@ -29,9 +29,15 @@
'?' => "asked" } %]
[% to_identity = "" %]
+[% on_behalf_of = 0 %]
[% IF flag.status == '?' %]
- [% to_identity = flag.requestee.identity _ " for" %]
[% subject_status = "requested" %]
+ [% IF flag.setter.id == user.id %]
+ [% to_identity = flag.requestee.identity _ " for" %]
+ [% ELSE %]
+ [% on_behalf_of = 1 %]
+ [% IF flag.requestee %][% to_identity = " to " _ flag.requestee.identity %][% END %]
+ [% END %]
[% ELSE %]
[% IF flag.requester %]
[% to_identity = flag.requester.identity _ "'s request for" %]
@@ -48,7 +54,12 @@ X-Bugzilla-Type: request
[%+ USE wrap -%]
[%- FILTER bullet = wrap(80) -%]
+[% IF on_behalf_of %]
+[% user.identity %] has reassigned [% flag.setter.identity %]'s request for [% flag.type.name %]
+[% to_identity %]:
+[% ELSE %]
[% user.identity %] has [% statuses.${flag.status} %] [%+ to_identity %] [%+ flag.type.name %]:
+[% END %]
[% terms.Bug %] [%+ bugidsummary %]
[% END %]