summaryrefslogtreecommitdiffstats
path: root/globals.pl
diff options
context:
space:
mode:
authorjake%acutex.net <>2001-08-25 09:12:12 +0200
committerjake%acutex.net <>2001-08-25 09:12:12 +0200
commitcc92806629faf3c3abd43690fd26866688f916f0 (patch)
tree547f8f30663c3a0429fe3ad2aaa535a8ce27d30e /globals.pl
parent549954949a402ba5bc84cfb83cda3d62a8e1a887 (diff)
downloadbugzilla-cc92806629faf3c3abd43690fd26866688f916f0.tar.gz
bugzilla-cc92806629faf3c3abd43690fd26866688f916f0.tar.xz
Fix for bug 95634 - Improvements to Param('voteremovedmail')
Patch by Matthew Tuck <matty@chariot.net.au> r= jake@acutex.net
Diffstat (limited to 'globals.pl')
-rw-r--r--globals.pl43
1 files changed, 33 insertions, 10 deletions
diff --git a/globals.pl b/globals.pl
index a3ea97c40..f4dc31419 100644
--- a/globals.pl
+++ b/globals.pl
@@ -1195,33 +1195,45 @@ sub RemoveVotes {
$whopart);
my @list;
while (MoreSQLData()) {
- my ($name, $userid, $count, $votesperuser, $maxvotesperbug) = (FetchSQLData());
- push(@list, [$name, $userid, $count, $votesperuser, $maxvotesperbug]);
+ my ($name, $userid, $oldvotes, $votesperuser, $maxvotesperbug) = (FetchSQLData());
+ push(@list, [$name, $userid, $oldvotes, $votesperuser, $maxvotesperbug]);
}
if (0 < @list) {
foreach my $ref (@list) {
- my ($name, $userid, $count, $votesperuser, $maxvotesperbug) = (@$ref);
+ my ($name, $userid, $oldvotes, $votesperuser, $maxvotesperbug) = (@$ref);
+ my $s;
+
+ $maxvotesperbug = $votesperuser if ($votesperuser < $maxvotesperbug);
# If this product allows voting and the user's votes are in
# the acceptable range, then don't do anything.
- next if $votesperuser && $count <= $maxvotesperbug;
+ next if $votesperuser && $oldvotes <= $maxvotesperbug;
# If the user has more votes on this bug than this product
# allows, then reduce the number of votes so it fits
my $newvotes = $votesperuser ? $maxvotesperbug : 0;
+
+ my $removedvotes = $oldvotes - $newvotes;
+
+ $s = $oldvotes == 1 ? "" : "s";
+ my $oldvotestext = "You had $oldvotes vote$s on this bug.";
+
+ $s = $removedvotes == 1 ? "" : "s";
+ my $removedvotestext = "You had $removedvotes vote$s removed from this bug.";
+
+ my $newvotestext;
if ($newvotes) {
SendSQL("UPDATE votes SET count = $newvotes " .
"WHERE bug_id = $id AND who = $userid");
- my $s = $newvotes == 1 ? "" : "s";
- $count = ($count - $newvotes) .
- "\n You still have $newvotes vote$s on this bug";
+ $s = $newvotes == 1 ? "" : "s";
+ $newvotestext = "You still have $newvotes vote$s on this bug."
} else {
SendSQL("DELETE FROM votes WHERE bug_id = $id AND who = $userid");
- $count = "$count\n You have no more votes remaining on this bug";
+ $newvotestext = "You have no more votes remaining on this bug.";
}
# Notice that we did not make sure that the user fit within the $votesperuser
- # range. This is considered to be an acceptable alternative to loosing votes
+ # range. This is considered to be an acceptable alternative to losing votes
# during product moves. Then next time the user attempts to change their votes,
# they will be forced to fit within the $votesperuser limit.
@@ -1233,10 +1245,21 @@ sub RemoveVotes {
}
if (open(SENDMAIL, "|/usr/lib/sendmail $sendmailparm -t")) {
my %substs;
+
$substs{"to"} = $name;
$substs{"bugid"} = $id;
$substs{"reason"} = $reason;
- $substs{"count"} = $count;
+
+ $substs{"votesremoved"} = $removedvotes;
+ $substs{"votesold"} = $oldvotes;
+ $substs{"votesnew"} = $newvotes;
+
+ $substs{"votesremovedtext"} = $removedvotestext;
+ $substs{"votesoldtext"} = $oldvotestext;
+ $substs{"votesnewtext"} = $newvotestext;
+
+ $substs{"count"} = $removedvotes . "\n " . $newvotestext;
+
my $msg = PerformSubsts(Param("voteremovedmail"),
\%substs);
print SENDMAIL $msg;