implements percentage in proposal supports
This commit is contained in:
@@ -8,4 +8,14 @@ module ProposalsHelper
|
||||
end
|
||||
end
|
||||
|
||||
def supports_percentage(proposal)
|
||||
percentage = (proposal.cached_votes_up.to_f * 100 / Proposal.votes_needed_for_success)
|
||||
case percentage
|
||||
when 0 then "0%"
|
||||
when 0..(0.1) then "0.1%"
|
||||
when (0.1)..100 then number_to_percentage(percentage, strip_insignificant_zeros: true, precision: 1)
|
||||
else "100%"
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -8,7 +8,7 @@
|
||||
<span class="total-supports">
|
||||
<%= t("proposals.proposal.supports", count: proposal.total_votes) %>
|
||||
<!-- percentage of supports -->
|
||||
(0.1%)
|
||||
(<%= supports_percentage(proposal) %>)
|
||||
<!-- /. percentage of supports -->
|
||||
<span>
|
||||
<abbr title="<%= t("proposals.proposal.census_percent") %>">
|
||||
|
||||
@@ -3,7 +3,6 @@ require 'rails_helper'
|
||||
describe ProposalsHelper do
|
||||
|
||||
describe "#progress_bar_percentage" do
|
||||
|
||||
it "should be 0 if no votes" do
|
||||
proposal = create(:proposal)
|
||||
expect(progress_bar_percentage(proposal)).to eq 0
|
||||
@@ -20,4 +19,26 @@ describe ProposalsHelper do
|
||||
end
|
||||
end
|
||||
|
||||
describe "#supports_percentage" do
|
||||
it "should be 0 if no votes" do
|
||||
proposal = create(:proposal)
|
||||
expect(supports_percentage(proposal)).to eq "0%"
|
||||
end
|
||||
|
||||
it "should be a between 0.1 from 1 to 0.1% of needed votes" do
|
||||
proposal = create(:proposal, cached_votes_up: 1)
|
||||
expect(supports_percentage(proposal)).to eq "0.1%"
|
||||
end
|
||||
|
||||
it "should be a between 1 and 100 if there are votes but less than needed" do
|
||||
proposal = create(:proposal, cached_votes_up: Proposal.votes_needed_for_success/2)
|
||||
expect(supports_percentage(proposal)).to eq "50%"
|
||||
end
|
||||
|
||||
it "should be 100 if there are more votes than needed" do
|
||||
proposal = create(:proposal, cached_votes_up: Proposal.votes_needed_for_success*2)
|
||||
expect(supports_percentage(proposal)).to eq "100%"
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user