diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb index 25707e66e..61f9aa78d 100644 --- a/app/controllers/admin/spending_proposals_controller.rb +++ b/app/controllers/admin/spending_proposals_controller.rb @@ -7,7 +7,7 @@ class Admin::SpendingProposalsController < Admin::BaseController load_and_authorize_resource def index - @spending_proposals = SpendingProposal.search(params, @current_filter).order(created_at: :desc).page(params[:page]) + @spending_proposals = SpendingProposal.scoped_filter(params, @current_filter).order(created_at: :desc).page(params[:page]) end def show diff --git a/app/controllers/valuation/spending_proposals_controller.rb b/app/controllers/valuation/spending_proposals_controller.rb index 364671d09..c5f822b40 100644 --- a/app/controllers/valuation/spending_proposals_controller.rb +++ b/app/controllers/valuation/spending_proposals_controller.rb @@ -10,7 +10,7 @@ class Valuation::SpendingProposalsController < Valuation::BaseController def index if current_user.valuator? - @spending_proposals = SpendingProposal.search(params_for_current_valuator, @current_filter).order(created_at: :desc).page(params[:page]) + @spending_proposals = SpendingProposal.scoped_filter(params_for_current_valuator, @current_filter).order(created_at: :desc).page(params[:page]) else @spending_proposals = SpendingProposal.none.page(params[:page]) end diff --git a/app/models/spending_proposal.rb b/app/models/spending_proposal.rb index 4b3c7d4f7..9e4c4492e 100644 --- a/app/models/spending_proposal.rb +++ b/app/models/spending_proposal.rb @@ -32,7 +32,7 @@ class SpendingProposal < ActiveRecord::Base scope :by_tag, -> (tag_name) { tagged_with(tag_name) } scope :by_valuator, -> (valuator) { where("valuation_assignments.valuator_id = ?", valuator.presence).joins(:valuation_assignments) } - scope :for_render, -> { includes(:geozone, administrator: :user, valuators: :user) } + scope :for_render, -> { includes(:geozone) } def description super.try :html_safe @@ -42,14 +42,14 @@ class SpendingProposal < ActiveRecord::Base params.select{|x,_| %w{geozone_id administrator_id tag_name valuator_id}.include? x.to_s } end - def self.search(params, current_filter) + def self.scoped_filter(params, current_filter) results = self results = results.by_geozone(params[:geozone_id]) if params[:geozone_id].present? results = results.by_admin(params[:administrator_id]) if params[:administrator_id].present? results = results.by_tag(params[:tag_name]) if params[:tag_name].present? results = results.by_valuator(params[:valuator_id]) if params[:valuator_id].present? results = results.send(current_filter) if current_filter.present? - results.for_render + results.includes(:geozone, administrator: :user, valuators: :user) end def self.by_geozone(geozone)