adds filtering of spending proposals by admin
This commit is contained in:
@@ -23,10 +23,36 @@ class SpendingProposal < ActiveRecord::Base
|
||||
scope :valuating, -> { where("valuation_assignments_count > 0 AND valuation_finished = ?", false) }
|
||||
scope :valuation_finished, -> { where(valuation_finished: true) }
|
||||
|
||||
scope :for_render, -> { includes(:geozone, administrator: :user, valuators: :user) }
|
||||
|
||||
def description
|
||||
super.try :html_safe
|
||||
end
|
||||
|
||||
def self.search(params, current_filter)
|
||||
results = self
|
||||
results = results.by_geozone(params[:geozone_id]) if params[:geozone_id].present?
|
||||
results = results.by_administrator(params[:administrator_id]) if params[:administrator_id].present?
|
||||
results = results.send(current_filter) if current_filter.present?
|
||||
results = results.for_render
|
||||
results
|
||||
end
|
||||
|
||||
def self.by_geozone(geozone)
|
||||
case geozone
|
||||
when nil
|
||||
self
|
||||
when 'all'
|
||||
where(geozone_id: nil)
|
||||
else
|
||||
where(geozone_id: geozone.presence)
|
||||
end
|
||||
end
|
||||
|
||||
def self.by_administrator(administrator)
|
||||
where(administrator_id: administrator.presence)
|
||||
end
|
||||
|
||||
def feasibility
|
||||
case feasible
|
||||
when true
|
||||
|
||||
Reference in New Issue
Block a user