diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb index 899a32486..4ef96a3c0 100644 --- a/app/controllers/admin/spending_proposals_controller.rb +++ b/app/controllers/admin/spending_proposals_controller.rb @@ -1,5 +1,6 @@ class Admin::SpendingProposalsController < Admin::BaseController include FeatureFlags + before_action :load_filter_params feature_flag :spending_proposals has_filters %w{valuation_open without_admin managed valuating valuation_finished all}, only: :index @@ -7,7 +8,7 @@ class Admin::SpendingProposalsController < Admin::BaseController load_and_authorize_resource def index - @spending_proposals = SpendingProposal.scoped_filter(params, @current_filter) + @spending_proposals = SpendingProposal.scoped_filter(filter_params, @current_filter) .order(cached_votes_up: :desc, created_at: :desc) .page(params[:page]) end @@ -23,7 +24,7 @@ class Admin::SpendingProposalsController < Admin::BaseController def update if @spending_proposal.update(spending_proposal_params) - redirect_to admin_spending_proposal_path(@spending_proposal, SpendingProposal.filter_params(params)), + redirect_to admin_spending_proposal_path(@spending_proposal, filter_params), notice: t("flash.actions.update.spending_proposal") else load_admins @@ -46,6 +47,14 @@ class Admin::SpendingProposalsController < Admin::BaseController :administrator_id, :tag_list, valuator_ids: []) end + def filter_params + params.permit(:geozone_id, :administrator_id, :tag_name, :valuator_id) + end + + def load_filter_params + @filter_params ||= filter_params + end + def load_admins @admins = Administrator.includes(:user).all end diff --git a/app/models/spending_proposal.rb b/app/models/spending_proposal.rb index 2b6b9fd67..f5501dc5b 100644 --- a/app/models/spending_proposal.rb +++ b/app/models/spending_proposal.rb @@ -43,10 +43,6 @@ class SpendingProposal < ActiveRecord::Base super.try :html_safe end - def self.filter_params(params) - params.select{|x, _| %w{geozone_id administrator_id tag_name valuator_id}.include? x.to_s } - end - def self.scoped_filter(params, current_filter) results = self results = results.by_geozone(params[:geozone_id]) if params[:geozone_id].present? diff --git a/app/views/admin/spending_proposals/edit.html.erb b/app/views/admin/spending_proposals/edit.html.erb index f7a4d545d..29438f28b 100644 --- a/app/views/admin/spending_proposals/edit.html.erb +++ b/app/views/admin/spending_proposals/edit.html.erb @@ -1,11 +1,11 @@ -<%= link_to admin_spending_proposal_path(@spending_proposal, SpendingProposal.filter_params(params)), class: "back" do %> +<%= link_to admin_spending_proposal_path(@spending_proposal, @filter_params.to_h), class: 'back' do %> <%= t("admin.spending_proposals.show.back") %> <% end %> <%= form_for @spending_proposal, url: admin_spending_proposal_path(@spending_proposal) do |f| %> - <% SpendingProposal.filter_params(params).each do |filter_name, filter_value| %> + <% @filter_params.to_h.each do |filter_name, filter_value| %> <%= hidden_field_tag filter_name, filter_value %> <% end %> @@ -15,7 +15,9 @@
<%= link_to t("admin.spending_proposals.show.edit_classification"), edit_admin_spending_proposal_path(@spending_proposal, - {anchor: "classification"}.merge(SpendingProposal.filter_params(params))) %> + {anchor: 'classification'}.merge(@filter_params.to_h)) %>
- <%= link_to t("admin.spending_proposals.show.edit_dossier"), edit_valuation_spending_proposal_path(@spending_proposal) %> + <%= link_to t("admin.spending_proposals.show.edit_dossier"), + edit_valuation_spending_proposal_path(@spending_proposal) %>