Merge pull request #499 from AyuntamientoMadrid/percentages

makes percentage votes to sum 100
This commit is contained in:
Raimond Garcia
2015-09-15 15:05:22 +02:00
4 changed files with 26 additions and 7 deletions

View File

@@ -1,10 +1,5 @@
module ApplicationHelper
def percentage(vote, debate)
return "0%" if debate.total_votes == 0
debate.send(vote).percent_of(debate.total_votes).to_s + "%"
end
def home_page?
return false if user_signed_in?
# Using path because fullpath yields false negatives since it contains

View File

@@ -1,5 +1,18 @@
module VotesHelper
def debate_percentage_of_likes(debate)
debate.likes.percent_of(debate.total_votes)
end
def votes_percentage(vote, debate)
return "0%" if debate.total_votes == 0
if vote == 'likes'
debate_percentage_of_likes(debate).to_s + "%"
elsif vote == 'dislikes'
(100 - debate_percentage_of_likes(debate)).to_s + "%"
end
end
def css_classes_for_vote(votes, votable)
case votes[votable.id]
when true

View File

@@ -4,7 +4,7 @@
<%= link_to vote_debate_path(debate, value: 'yes'),
class: "like #{voted_classes[:in_favor]}", title: t('votes.agree'), method: "post", remote: true do %>
<i class="icon-like"></i>
<span><%= percentage('likes', debate) %></span>
<span><%= votes_percentage('likes', debate) %></span>
<% end %>
</div>
@@ -13,7 +13,7 @@
<div class="against inline-block">
<%= link_to vote_debate_path(debate, value: 'no'), class: "unlike #{voted_classes[:against]}", title: t('votes.disagree'), method: "post", remote: true do %>
<i class="icon-unlike"></i>
<span><%= percentage('dislikes', debate) %></span>
<span><%= votes_percentage('dislikes', debate) %></span>
<% end %>
</div>

View File

@@ -18,4 +18,15 @@ describe VotesHelper do
end
end
describe "#votes_percentage" do
it "should always sum 100%" do
debate = create(:debate)
create_list(:vote, 8, votable: debate, vote_flag: true)
create_list(:vote, 3, votable: debate, vote_flag: false)
expect(votes_percentage('likes', debate)).to eq("72%")
expect(votes_percentage('dislikes', debate)).to eq("28%")
end
end
end