Class: Decidim::ParticipatoryProcesses::ParticipatoryProcessSearch

Inherits:
ParticipatorySpaceSearch
  • Object
show all
Defined in:
app/services/decidim/participatory_processes/participatory_process_search.rb

Overview

Service that encapsulates all logic related to filtering participatory processes.

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ ParticipatoryProcessSearch

Returns a new instance of ParticipatoryProcessSearch.



7
8
9
# File 'app/services/decidim/participatory_processes/participatory_process_search.rb', line 7

def initialize(options = {})
  super(ParticipatoryProcess.all, options)
end

Instance Method Details

#search_dateObject



11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/services/decidim/participatory_processes/participatory_process_search.rb', line 11

def search_date
  case date
  when "active"
    query.active.order(start_date: :desc)
  when "past"
    query.past.order(end_date: :desc)
  when "upcoming"
    query.upcoming.order(start_date: :asc)
  else # Assume 'all'
    query.order(Arel.sql("ABS(start_date - (CURRENT_DATE at time zone '#{Time.zone}')::date)"))
  end
end