Class: Workarea::Search::AdminOrders

Inherits:
Object
  • Object
show all
Includes:
AdminIndexSearch, AdminSorting, Pagination, Query
Defined in:
app/queries/workarea/search/admin_orders.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Pagination

#each_by, #from, #page, #per_page, #results, #size

Methods included from AdminSorting

#default_admin_sort, #sort, #user_selected_sort

Methods included from AdminIndexSearch

#aggregations, #autocomplete?, #exclude_filter_clause, #fields, #jump_to_navigation_filter_clause, #post_filter, #query, #sanitized_query

Methods included from Query

#additional_options, #aggregations, #body, #id, #load_model_from, #loaded_results, #post_filter, #query, #query_string, #response, #results, #scroll, #stats, #total

Constructor Details

#initialize(params = {}) ⇒ AdminOrders

Returns a new instance of AdminOrders.



22
23
24
# File 'app/queries/workarea/search/admin_orders.rb', line 22

def initialize(params = {})
  super(params.merge(type: 'order'))
end

Class Method Details

.available_sortsObject



11
12
13
14
15
16
17
18
19
20
# File 'app/queries/workarea/search/admin_orders.rb', line 11

def self.available_sorts
  Sort::Collection.new(
    Sort.relevance,
    Sort.modified,
    Sort.name_asc,
    Sort.total,
    Sort.newest_placed,
    Sort.oldest_placed
  )
end

Instance Method Details

#current_sortObject



44
45
46
# File 'app/queries/workarea/search/admin_orders.rb', line 44

def current_sort
  AdminOrders.available_sorts.find(params[:sort])
end

#facetsObject



26
27
28
29
30
31
32
33
# File 'app/queries/workarea/search/admin_orders.rb', line 26

def facets
  super + [
    TermsFacet.new(self, 'order_status'),
    TermsFacet.new(self, 'payment_status'),
    TermsFacet.new(self, 'fulfillment_status'),
    TermsFacet.new(self, 'traffic_referrer')
  ]
end

#filtersObject



35
36
37
38
39
40
41
42
# File 'app/queries/workarea/search/admin_orders.rb', line 35

def filters
  [
    DateFilter.new(self, 'placed_at', :gte),
    DateFilter.new(self, 'placed_at', :lte),
    RangeFilter.new(self, 'total_price', :gte),
    RangeFilter.new(self, 'total_price', :lt)
  ]
end