]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 376061: Changing the requestee of a flag should not change the requester if the...
authorlpsolit%gmail.com <>
Wed, 8 Aug 2007 18:07:35 +0000 (18:07 +0000)
committerlpsolit%gmail.com <>
Wed, 8 Aug 2007 18:07:35 +0000 (18:07 +0000)
Bugzilla/Flag.pm
template/en/default/request/email.txt.tmpl

index 19ecf7fa904b93d13502d975d56914ada6c5906c..a6914a6618410ba1d192d485a110adad906216d1 100644 (file)
@@ -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.
index 22c1ffbd69207d5a5df83375c58b16a737a6086f..125439937252e17c441fa8f249cef05203ff058f 100644 (file)
                 '?' => "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 %]