From 8d9074a59f0bfa4b79256e5524a447397e3490de Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Wed, 8 Aug 2007 18:07:35 +0000 Subject: 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 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bugzilla/Flag.pm | 12 ++++++++++-- template/en/default/request/email.txt.tmpl | 13 ++++++++++++- 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 %] -- cgit v1.2.3-24-g4f1b