From 8bce72bea38914b69252c2a793f9ca8466d72aff Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 26 Apr 2016 17:37:21 +0200 Subject: [PATCH] displays correct admin info for proposals with supports --- app/helpers/spending_proposals_helper.rb | 6 +- .../_summary_table.html.erb | 10 +-- .../admin/spending_proposals/summary.html.erb | 14 ++++- .../features/admin/spending_proposals_spec.rb | 63 +++++++++++++++++-- 4 files changed, 77 insertions(+), 16 deletions(-) diff --git a/app/helpers/spending_proposals_helper.rb b/app/helpers/spending_proposals_helper.rb index 40b9d489e..26026952f 100644 --- a/app/helpers/spending_proposals_helper.rb +++ b/app/helpers/spending_proposals_helper.rb @@ -14,11 +14,11 @@ module SpendingProposalsHelper end end - def spending_proposal_count_for_geozone(scope, geozone) + def spending_proposal_count_for_geozone(scope, geozone, second_scope) if geozone.present? - geozone.spending_proposals.send(scope).count + geozone.spending_proposals.send(scope).send(second_scope).count else - SpendingProposal.where(geozone: nil).send(scope).count + SpendingProposal.where(geozone: nil).send(scope).send(second_scope).count end end diff --git a/app/views/admin/spending_proposals/_summary_table.html.erb b/app/views/admin/spending_proposals/_summary_table.html.erb index f2717a550..c0c127ee7 100644 --- a/app/views/admin/spending_proposals/_summary_table.html.erb +++ b/app/views/admin/spending_proposals/_summary_table.html.erb @@ -13,19 +13,19 @@ <%= geozone.present? ? geozone.name : t("geozones.none") %> - <%= spending_proposal_count_for_geozone("finished_and_feasible", geozone) %> + <%= spending_proposal_count_for_geozone("finished_and_feasible", geozone, second_scope) %> - <%= spending_proposal_count_for_geozone("finished_and_unfeasible", geozone) %> + <%= spending_proposal_count_for_geozone("finished_and_unfeasible", geozone, second_scope) %> - <%= spending_proposal_count_for_geozone("valuation_finished", geozone) %> + <%= spending_proposal_count_for_geozone("valuation_finished", geozone, second_scope) %> - <%= spending_proposal_count_for_geozone("valuating", geozone) %> + <%= spending_proposal_count_for_geozone("valuating", geozone, second_scope) %> - <%= spending_proposal_count_for_geozone("all", geozone) %> + <%= spending_proposal_count_for_geozone("all", geozone, second_scope) %> <%= number_to_currency(price) %> diff --git a/app/views/admin/spending_proposals/summary.html.erb b/app/views/admin/spending_proposals/summary.html.erb index f0daaed16..39fd2c014 100644 --- a/app/views/admin/spending_proposals/summary.html.erb +++ b/app/views/admin/spending_proposals/summary.html.erb @@ -4,7 +4,15 @@ <% end %>

<%= t("admin.spending_proposals.summary.title") %>

-<%= render 'summary_table', spending_proposals: @spending_proposals %> +
+ <%= render 'summary_table', + spending_proposals: @spending_proposals, + second_scope: 'all' %> +
-

<%= t("admin.spending_proposals.summary.title_proposals_with_supports") %>

-<%= render 'summary_table', spending_proposals: @spending_proposals_with_supports %> +
+

<%= t("admin.spending_proposals.summary.title_proposals_with_supports") %>

+ <%= render 'summary_table', + spending_proposals: @spending_proposals_with_supports, + second_scope: 'with_supports' %> +
\ No newline at end of file diff --git a/spec/features/admin/spending_proposals_spec.rb b/spec/features/admin/spending_proposals_spec.rb index 18c682472..caaa108ad 100644 --- a/spec/features/admin/spending_proposals_spec.rb +++ b/spec/features/admin/spending_proposals_spec.rb @@ -516,11 +516,11 @@ feature 'Admin spending proposals' do 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) + proposal2 = create(:spending_proposal, geozone: nil, 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) 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 @@ -546,11 +546,11 @@ feature 'Admin spending proposals' do new_york = create(:geozone) 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) 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: false) + proposal6 = create(:spending_proposal, geozone: new_york, valuation_finished: false) visit admin_spending_proposals_path @@ -576,7 +576,7 @@ feature 'Admin spending proposals' do new_york = create(:geozone) 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) proposal4 = create(:spending_proposal, geozone: california, valuation_finished: false) proposal5 = create(:spending_proposal, geozone: new_york, valuation_finished: false) @@ -607,6 +607,59 @@ feature 'Admin spending proposals' do 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