From d51fe779e2628ef9d97c6995e82876ab928f3eea Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 26 Apr 2016 15:13:15 +0200 Subject: [PATCH] displays summary info for supported spending proposals --- .../admin/spending_proposals_controller.rb | 1 + app/models/spending_proposal.rb | 3 ++ .../_summary_table.html.erb | 35 +++++++++++++++++ .../admin/spending_proposals/summary.html.erb | 38 ++----------------- config/locales/admin.en.yml | 1 + config/locales/admin.es.yml | 1 + spec/models/spending_proposal_spec.rb | 27 ++++--------- 7 files changed, 51 insertions(+), 55 deletions(-) create mode 100644 app/views/admin/spending_proposals/_summary_table.html.erb diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb index 074ebae90..e6fe19656 100644 --- a/app/controllers/admin/spending_proposals_controller.rb +++ b/app/controllers/admin/spending_proposals_controller.rb @@ -33,6 +33,7 @@ class Admin::SpendingProposalsController < Admin::BaseController def summary @spending_proposals = SpendingProposal.group(:geozone).sum(:price) + @spending_proposals_with_supports = SpendingProposal.with_supports.group(:geozone).sum(:price) end private diff --git a/app/models/spending_proposal.rb b/app/models/spending_proposal.rb index 312a40763..9572f9695 100644 --- a/app/models/spending_proposal.rb +++ b/app/models/spending_proposal.rb @@ -147,5 +147,8 @@ class SpendingProposal < ActiveRecord::Base valuation_finished.unfeasible end + def self.with_supports + SpendingProposal.where(id: Vote.for_spending_proposals(SpendingProposal.all).map(&:votable).map(&:id)) + end end diff --git a/app/views/admin/spending_proposals/_summary_table.html.erb b/app/views/admin/spending_proposals/_summary_table.html.erb new file mode 100644 index 000000000..f2717a550 --- /dev/null +++ b/app/views/admin/spending_proposals/_summary_table.html.erb @@ -0,0 +1,35 @@ + + + + + + + + + + <% spending_proposals.each do |geozone, price| %> + + + + + + + + + + <% end %> +
<%= t("admin.spending_proposals.summary.geozone_name") %><%= t("admin.spending_proposals.summary.finished_and_feasible_count") %><%= t("admin.spending_proposals.summary.finished_and_unfeasible_count") %><%= t("admin.spending_proposals.summary.finished_count") %><%= t("admin.spending_proposals.summary.in_evaluation_count") %><%= t("admin.spending_proposals.summary.total_count") %><%= t("admin.spending_proposals.summary.cost_for_geozone") %>
+ <%= geozone.present? ? geozone.name : t("geozones.none") %> + + <%= spending_proposal_count_for_geozone("finished_and_feasible", geozone) %> + + <%= spending_proposal_count_for_geozone("finished_and_unfeasible", geozone) %> + + <%= spending_proposal_count_for_geozone("valuation_finished", geozone) %> + + <%= spending_proposal_count_for_geozone("valuating", geozone) %> + + <%= spending_proposal_count_for_geozone("all", geozone) %> + + <%= number_to_currency(price) %> +
\ No newline at end of file diff --git a/app/views/admin/spending_proposals/summary.html.erb b/app/views/admin/spending_proposals/summary.html.erb index 0b1d844c3..f0daaed16 100644 --- a/app/views/admin/spending_proposals/summary.html.erb +++ b/app/views/admin/spending_proposals/summary.html.erb @@ -4,39 +4,7 @@ <% end %>

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

+<%= render 'summary_table', spending_proposals: @spending_proposals %> - - - - - - - - - - <% @spending_proposals.each do |geozone, price| %> - - - - - - - - - - <% end %> -
<%= t("admin.spending_proposals.summary.geozone_name") %><%= t("admin.spending_proposals.summary.finished_and_feasible_count") %><%= t("admin.spending_proposals.summary.finished_and_unfeasible_count") %><%= t("admin.spending_proposals.summary.finished_count") %><%= t("admin.spending_proposals.summary.in_evaluation_count") %><%= t("admin.spending_proposals.summary.total_count") %><%= t("admin.spending_proposals.summary.cost_for_geozone") %>
- <%= geozone.present? ? geozone.name : t("geozones.none") %> - - <%= spending_proposal_count_for_geozone("finished_and_feasible", geozone) %> - - <%= spending_proposal_count_for_geozone("finished_and_unfeasible", geozone) %> - - <%= spending_proposal_count_for_geozone("valuation_finished", geozone) %> - - <%= spending_proposal_count_for_geozone("valuating", geozone) %> - - <%= spending_proposal_count_for_geozone("all", geozone) %> - - <%= number_to_currency(price) %> -
\ No newline at end of file +

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

+<%= render 'summary_table', spending_proposals: @spending_proposals_with_supports %> diff --git a/config/locales/admin.en.yml b/config/locales/admin.en.yml index 82a894b9e..6c74574c1 100755 --- a/config/locales/admin.en.yml +++ b/config/locales/admin.en.yml @@ -200,6 +200,7 @@ en: undefined: Undefined summary: title: Summary for investment projects + title_proposals_with_supports: Summary for investment projects with supports geozone_name: Scope finished_and_feasible_count: Finished and feasible finished_and_unfeasible_count: Finished and unfeasible diff --git a/config/locales/admin.es.yml b/config/locales/admin.es.yml index dd4dd58e0..f26c10712 100644 --- a/config/locales/admin.es.yml +++ b/config/locales/admin.es.yml @@ -200,6 +200,7 @@ es: undefined: Sin definir summary: title: Resumen de propuestas de inversión + title_proposals_with_supports: Resumen para propuestas que han superado la fase de apoyos geozone_name: Ámbito de ciudad finished_and_feasible_count: Finalizadas viables finished_and_unfeasible_count: Finished inviables diff --git a/spec/models/spending_proposal_spec.rb b/spec/models/spending_proposal_spec.rb index 68ca93535..911d97491 100644 --- a/spec/models/spending_proposal_spec.rb +++ b/spec/models/spending_proposal_spec.rb @@ -352,27 +352,14 @@ describe SpendingProposal do end end - describe "#for_summary" do - it "returns only feasible and valuation finished proposals" do - sp1 = create(:spending_proposal, feasible: true, valuation_finished: true) - sp2 = create(:spending_proposal, feasible: true, valuation_finished: true) - sp3 = create(:spending_proposal, feasible: false, valuation_finished: false) + describe "#with_supports" do + it "should return proposals with supports" do + sp1 = create(:spending_proposal) + sp2 = create(:spending_proposal) + create(:vote, votable: sp1) - expect(SpendingProposal.for_summary).to include(sp1) - expect(SpendingProposal.for_summary).to include(sp2) - expect(SpendingProposal.for_summary).to_not include(sp3) - end - - it "does not return unfeasible proposals" do - sp = create(:spending_proposal, feasible: false, valuation_finished: true) - - expect(SpendingProposal.for_summary).to_not include(sp) - end - - it "does not return proposals pending valuation" do - sp = create(:spending_proposal, feasible: true, valuation_finished: false) - - expect(SpendingProposal.for_summary).to_not include(sp) + expect(SpendingProposal.with_supports).to include(sp1) + expect(SpendingProposal.with_supports).to_not include(sp2) end end