diff options
author | Michael Clarke <michael.m.clarke@gmail.com> | 2014-11-05 20:45:18 +0000 |
---|---|---|
committer | Michael Clarke <michael.m.clarke@gmail.com> | 2015-01-19 21:18:36 +0000 |
commit | 505a492cd87be7683827c5f46a05b6a7dddffc86 (patch) | |
tree | 3d34981fbfb3e429475d2f6e87da0c63db5b9657 /app/models/concerns | |
parent | 465f41673a418096b761d12438301c7b217f9a81 (diff) | |
download | gitlab-ce-505a492cd87be7683827c5f46a05b6a7dddffc86.tar.gz |
Only count the user's last vote
Diffstat (limited to 'app/models/concerns')
-rw-r--r-- | app/models/concerns/issuable.rb | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb index f49708fd6eb..b8bee0d0ec0 100644 --- a/app/models/concerns/issuable.rb +++ b/app/models/concerns/issuable.rb @@ -88,7 +88,7 @@ module Issuable # Return the number of -1 comments (downvotes) def downvotes - notes.select(&:downvote?).size + filter_superceded_votes(notes.select(&:downvote?), notes).size end def downvotes_in_percent @@ -101,7 +101,7 @@ module Issuable # Return the number of +1 comments (upvotes) def upvotes - notes.select(&:upvote?).size + filter_superceded_votes(notes.select(&:upvote?), notes).size end def upvotes_in_percent @@ -154,4 +154,16 @@ module Issuable self.labels << label end end + + private + + def filter_superceded_votes(votes, notes) + filteredvotes = [] + votes + votes.each do |vote| + if vote.superceded?(notes) + filteredvotes.delete(vote) + end + end + filteredvotes + end end |