forked from jasder/forgeplus
23 lines
672 B
Ruby
23 lines
672 B
Ruby
|
class Admins::SchoolQuery < ApplicationQuery
|
||
|
include CustomSortable
|
||
|
|
||
|
attr_reader :params
|
||
|
|
||
|
sort_columns :users_count, :created_at, default_by: :created_at, default_direction: :desc
|
||
|
|
||
|
def initialize(params)
|
||
|
@params = params
|
||
|
end
|
||
|
|
||
|
def call
|
||
|
schools = School.all
|
||
|
|
||
|
keyword = strip_param(:keyword)
|
||
|
Rails.logger.info("###########{keyword}")
|
||
|
if keyword
|
||
|
schools = schools.where('schools.name LIKE ?', "%#{keyword}%")
|
||
|
end
|
||
|
schools = schools.left_joins(:user_extensions).select('schools.*, IFNULL(count(user_extensions.user_id),0) users_count').group('schools.id')
|
||
|
custom_sort schools, params[:sort_by], params[:sort_direction]
|
||
|
end
|
||
|
end
|