Merge pull request #499 from AyuntamientoMadrid/percentages
makes percentage votes to sum 100
This commit is contained in:
@@ -1,10 +1,5 @@
|
|||||||
module ApplicationHelper
|
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?
|
def home_page?
|
||||||
return false if user_signed_in?
|
return false if user_signed_in?
|
||||||
# Using path because fullpath yields false negatives since it contains
|
# Using path because fullpath yields false negatives since it contains
|
||||||
|
|||||||
@@ -1,5 +1,18 @@
|
|||||||
module VotesHelper
|
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)
|
def css_classes_for_vote(votes, votable)
|
||||||
case votes[votable.id]
|
case votes[votable.id]
|
||||||
when true
|
when true
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<%= link_to vote_debate_path(debate, value: 'yes'),
|
<%= link_to vote_debate_path(debate, value: 'yes'),
|
||||||
class: "like #{voted_classes[:in_favor]}", title: t('votes.agree'), method: "post", remote: true do %>
|
class: "like #{voted_classes[:in_favor]}", title: t('votes.agree'), method: "post", remote: true do %>
|
||||||
<i class="icon-like"></i>
|
<i class="icon-like"></i>
|
||||||
<span><%= percentage('likes', debate) %></span>
|
<span><%= votes_percentage('likes', debate) %></span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<div class="against inline-block">
|
<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 %>
|
<%= 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>
|
<i class="icon-unlike"></i>
|
||||||
<span><%= percentage('dislikes', debate) %></span>
|
<span><%= votes_percentage('dislikes', debate) %></span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -18,4 +18,15 @@ describe VotesHelper do
|
|||||||
end
|
end
|
||||||
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
|
end
|
||||||
Reference in New Issue
Block a user