diff --git a/app/assets/stylesheets/admin.scss b/app/assets/stylesheets/admin.scss index 1ccd7c880..7f05b47f8 100644 --- a/app/assets/stylesheets/admin.scss +++ b/app/assets/stylesheets/admin.scss @@ -354,6 +354,18 @@ body.admin { .investment-projects-list.medium-9 { width: 100%; } + + .investment-projects-summary { + + th { + text-align: center; + width: 33%; + + &:first-child { + text-align: left; + } + } + } } .admin-content .select-geozone { diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb index e7d1cc45c..bd139dc9a 100644 --- a/app/controllers/admin/spending_proposals_controller.rb +++ b/app/controllers/admin/spending_proposals_controller.rb @@ -28,6 +28,10 @@ class Admin::SpendingProposalsController < Admin::BaseController end end + def summary + @spending_proposals = SpendingProposal.for_summary.group(:geozone).sum(:price) + end + private def spending_proposal_params diff --git a/app/helpers/spending_proposals_helper.rb b/app/helpers/spending_proposals_helper.rb index ba68ad42a..030b53f8f 100644 --- a/app/helpers/spending_proposals_helper.rb +++ b/app/helpers/spending_proposals_helper.rb @@ -13,4 +13,13 @@ module SpendingProposalsHelper spending_proposal_path(spending_proposal, options) end end + + def spending_proposal_count_for_geozone(geozone) + if geozone.present? + geozone.spending_proposals.for_summary.count + else + SpendingProposal.where(geozone: nil).for_summary.count + end + end + end \ No newline at end of file diff --git a/app/models/abilities/administrator.rb b/app/models/abilities/administrator.rb index 1b440795f..ee5e963f2 100644 --- a/app/models/abilities/administrator.rb +++ b/app/models/abilities/administrator.rb @@ -37,7 +37,7 @@ module Abilities can :manage, Annotation - can [:read, :update, :destroy], SpendingProposal + can [:read, :update, :destroy, :summary], SpendingProposal end end end diff --git a/app/models/geozone.rb b/app/models/geozone.rb index ee612f355..787e2b7e2 100644 --- a/app/models/geozone.rb +++ b/app/models/geozone.rb @@ -1,7 +1,9 @@ class Geozone < ActiveRecord::Base + has_many :spending_proposals validates :name, presence: true def self.names Geozone.pluck(:name) end + end diff --git a/app/models/spending_proposal.rb b/app/models/spending_proposal.rb index eed1d21fa..d2c2be34c 100644 --- a/app/models/spending_proposal.rb +++ b/app/models/spending_proposal.rb @@ -135,4 +135,8 @@ class SpendingProposal < ActiveRecord::Base self.responsible_name = author.try(:document_number) if author.try(:document_number).present? end + def self.for_summary + valuation_finished.feasible + end + end diff --git a/app/views/admin/spending_proposals/index.html.erb b/app/views/admin/spending_proposals/index.html.erb index 1ad804c51..cd30f121d 100644 --- a/app/views/admin/spending_proposals/index.html.erb +++ b/app/views/admin/spending_proposals/index.html.erb @@ -1,4 +1,8 @@ -

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

+<%= link_to t("admin.spending_proposals.index.summary_link"), + summary_admin_spending_proposals_path, + class: "button float-right" %> + +

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

<%= form_tag admin_spending_proposals_path, method: :get, enforce_utf8: false do %> diff --git a/app/views/admin/spending_proposals/summary.html.erb b/app/views/admin/spending_proposals/summary.html.erb new file mode 100644 index 000000000..64b07e0ea --- /dev/null +++ b/app/views/admin/spending_proposals/summary.html.erb @@ -0,0 +1,20 @@ +<%= link_to admin_spending_proposals_path, class: "back" do %> + + <%= t("shared.back") %> +<% end %> + +

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

+ + + + + + + <% @spending_proposals.each do |geozone, price| %> + + + + + + <% end %> +
<%= t("admin.spending_proposals.summary.geozone_name") %><%= t("admin.spending_proposals.summary.count_for_geozone") %><%= t("admin.spending_proposals.summary.cost_for_geozone") %>
<%= geozone.present? ? geozone.name : t("geozones.none") %><%= spending_proposal_count_for_geozone(geozone) %><%= number_to_currency(price) %>
\ No newline at end of file diff --git a/app/views/shared/_filter_subnav.html.erb b/app/views/shared/_filter_subnav.html.erb index aec1daa30..51a745b09 100644 --- a/app/views/shared/_filter_subnav.html.erb +++ b/app/views/shared/_filter_subnav.html.erb @@ -1,8 +1,3 @@ -<% # Params: - # - # i18n_namespace: for example "moderation.debates.index" -%> -