From: lpsolit%gmail.com <> Date: Wed, 8 Aug 2007 18:07:35 +0000 (+0000) Subject: Bug 376061: Changing the requestee of a flag should not change the requester if the... X-Git-Tag: bugzilla-3.1.2~79 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8d9074a59f0bfa4b79256e5524a447397e3490de;p=thirdparty%2Fbugzilla.git Bug 376061: Changing the requestee of a flag should not change the requester if the one doing the change is the requestee himself - Patch by Frédéric Buclin r=myk a=LpSolit --- diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm index 19ecf7fa90..a6914a6618 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 22c1ffbd69..1254399372 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 %]