Merge pull request #1094 from consul/admin-summary-second-table

displays correct admin info for proposals with supports
This commit is contained in:
Juanjo Bazán
2016-04-26 18:10:12 +02:00
4 changed files with 77 additions and 16 deletions

View File

@@ -14,11 +14,11 @@ module SpendingProposalsHelper
end end
end end
def spending_proposal_count_for_geozone(scope, geozone) def spending_proposal_count_for_geozone(scope, geozone, second_scope)
if geozone.present? if geozone.present?
geozone.spending_proposals.send(scope).count geozone.spending_proposals.send(scope).send(second_scope).count
else else
SpendingProposal.where(geozone: nil).send(scope).count SpendingProposal.where(geozone: nil).send(scope).send(second_scope).count
end end
end end

View File

@@ -13,19 +13,19 @@
<%= geozone.present? ? geozone.name : t("geozones.none") %> <%= geozone.present? ? geozone.name : t("geozones.none") %>
</td> </td>
<td class="finished-and-feasible-count"> <td class="finished-and-feasible-count">
<%= spending_proposal_count_for_geozone("finished_and_feasible", geozone) %> <%= spending_proposal_count_for_geozone("finished_and_feasible", geozone, second_scope) %>
</td> </td>
<td class="finished-and-unfeasible-count"> <td class="finished-and-unfeasible-count">
<%= spending_proposal_count_for_geozone("finished_and_unfeasible", geozone) %> <%= spending_proposal_count_for_geozone("finished_and_unfeasible", geozone, second_scope) %>
</td> </td>
<td class="finished-count"> <td class="finished-count">
<%= spending_proposal_count_for_geozone("valuation_finished", geozone) %> <%= spending_proposal_count_for_geozone("valuation_finished", geozone, second_scope) %>
</td> </td>
<td class="in-evaluation-count"> <td class="in-evaluation-count">
<%= spending_proposal_count_for_geozone("valuating", geozone) %> <%= spending_proposal_count_for_geozone("valuating", geozone, second_scope) %>
</td> </td>
<td class="total-count"> <td class="total-count">
<%= spending_proposal_count_for_geozone("all", geozone) %> <%= spending_proposal_count_for_geozone("all", geozone, second_scope) %>
</td> </td>
<td class="total-price text-center"> <td class="total-price text-center">
<%= number_to_currency(price) %> <%= number_to_currency(price) %>

View File

@@ -4,7 +4,15 @@
<% end %> <% end %>
<h2><%= t("admin.spending_proposals.summary.title") %></h2> <h2><%= t("admin.spending_proposals.summary.title") %></h2>
<%= render 'summary_table', spending_proposals: @spending_proposals %> <div id="all-proposals">
<%= render 'summary_table',
spending_proposals: @spending_proposals,
second_scope: 'all' %>
</div>
<h2><%= t("admin.spending_proposals.summary.title_proposals_with_supports") %></h2> <div id="proposals-with-votes">
<%= render 'summary_table', spending_proposals: @spending_proposals_with_supports %> <h2><%= t("admin.spending_proposals.summary.title_proposals_with_supports") %></h2>
<%= render 'summary_table',
spending_proposals: @spending_proposals_with_supports,
second_scope: 'with_supports' %>
</div>

View File

@@ -516,11 +516,11 @@ feature 'Admin spending proposals' do
new_york = create(:geozone) new_york = create(:geozone)
proposal1 = create(:spending_proposal, geozone: nil, feasible: false, valuation_finished: true) proposal1 = create(:spending_proposal, geozone: nil, feasible: false, valuation_finished: true)
proposal1 = create(:spending_proposal, geozone: nil, feasible: false, valuation_finished: true) proposal2 = create(:spending_proposal, geozone: nil, feasible: false, valuation_finished: true)
proposal3 = create(:spending_proposal, geozone: california, feasible: false, valuation_finished: true) proposal3 = create(:spending_proposal, geozone: california, feasible: false, valuation_finished: true)
proposal4 = create(:spending_proposal, geozone: california, feasible: false, valuation_finished: true) proposal4 = create(:spending_proposal, geozone: california, feasible: false, valuation_finished: true)
proposal5 = create(:spending_proposal, geozone: new_york, feasible: false, valuation_finished: true) proposal5 = create(:spending_proposal, geozone: new_york, feasible: false, valuation_finished: true)
proposal5 = create(:spending_proposal, geozone: new_york, feasible: true, valuation_finished: true) proposal6 = create(:spending_proposal, geozone: new_york, feasible: true, valuation_finished: true)
visit admin_spending_proposals_path visit admin_spending_proposals_path
@@ -546,11 +546,11 @@ feature 'Admin spending proposals' do
new_york = create(:geozone) new_york = create(:geozone)
proposal1 = create(:spending_proposal, geozone: nil, valuation_finished: true) proposal1 = create(:spending_proposal, geozone: nil, valuation_finished: true)
proposal1 = create(:spending_proposal, geozone: nil, valuation_finished: true) proposal2 = create(:spending_proposal, geozone: nil, valuation_finished: true)
proposal3 = create(:spending_proposal, geozone: california, valuation_finished: true) proposal3 = create(:spending_proposal, geozone: california, valuation_finished: true)
proposal4 = create(:spending_proposal, geozone: california, valuation_finished: true) proposal4 = create(:spending_proposal, geozone: california, valuation_finished: true)
proposal5 = create(:spending_proposal, geozone: new_york, valuation_finished: true) proposal5 = create(:spending_proposal, geozone: new_york, valuation_finished: true)
proposal5 = create(:spending_proposal, geozone: new_york, valuation_finished: false) proposal6 = create(:spending_proposal, geozone: new_york, valuation_finished: false)
visit admin_spending_proposals_path visit admin_spending_proposals_path
@@ -576,7 +576,7 @@ feature 'Admin spending proposals' do
new_york = create(:geozone) new_york = create(:geozone)
proposal1 = create(:spending_proposal, geozone: nil, valuation_finished: false) proposal1 = create(:spending_proposal, geozone: nil, valuation_finished: false)
proposal1 = create(:spending_proposal, geozone: nil, valuation_finished: false) proposal2 = create(:spending_proposal, geozone: nil, valuation_finished: false)
proposal3 = create(:spending_proposal, geozone: california, valuation_finished: false) proposal3 = create(:spending_proposal, geozone: california, valuation_finished: false)
proposal4 = create(:spending_proposal, geozone: california, valuation_finished: false) proposal4 = create(:spending_proposal, geozone: california, valuation_finished: false)
proposal5 = create(:spending_proposal, geozone: new_york, valuation_finished: false) proposal5 = create(:spending_proposal, geozone: new_york, valuation_finished: false)
@@ -607,6 +607,59 @@ feature 'Admin spending proposals' do
end end
end end
context "Second table" do
scenario "should not display proposals without votes" do
california = create(:geozone)
new_york = create(:geozone)
proposal1 = create(:spending_proposal, geozone: nil, valuation_finished: true)
proposal2 = create(:spending_proposal, geozone: nil, valuation_finished: true)
proposal3 = create(:spending_proposal, geozone: california, valuation_finished: true)
proposal4 = create(:spending_proposal, geozone: california, valuation_finished: true)
proposal5 = create(:spending_proposal, geozone: new_york, valuation_finished: true)
proposal6 = create(:spending_proposal, geozone: new_york, valuation_finished: false)
create(:vote, votable: proposal1)
create(:vote, votable: proposal2)
create(:vote, votable: proposal3)
visit admin_spending_proposals_path
click_link "Summary"
expect(page).to have_content "Summary for investment projects"
within("#all-proposals") do
within("#geozone_all_city") do
expect(page).to have_css(".finished-count", text: 2)
end
within("#geozone_#{california.id}") do
expect(page).to have_css(".finished-count", text: 2)
end
within("#geozone_#{new_york.id}") do
expect(page).to have_css(".finished-count", text: 1)
end
end
within("#proposals-with-votes") do
within("#geozone_all_city") do
expect(page).to have_css(".finished-count", text: 2)
end
within("#geozone_#{california.id}") do
expect(page).to have_css(".finished-count", text: 1)
end
expect(page).to_not have_css("#geozone_#{new_york.id}")
end
end
end
end end
end end