Move all order logic to models
- Have a default order for each model -- The overall default is ID DESC - Allow for custom orderings -- When comma-separated IDs are used
This commit is contained in:
@@ -536,7 +536,6 @@ class Artist < ApplicationRecord
|
||||
|
||||
def search(params)
|
||||
q = super
|
||||
params = {} if params.blank?
|
||||
|
||||
case params[:name]
|
||||
when /^http/
|
||||
@@ -581,18 +580,6 @@ class Artist < ApplicationRecord
|
||||
q = q.url_matches(params[:url_matches])
|
||||
end
|
||||
|
||||
params[:order] ||= params.delete(:sort)
|
||||
case params[:order]
|
||||
when "name"
|
||||
q = q.order("artists.name")
|
||||
when "updated_at"
|
||||
q = q.order("artists.updated_at desc")
|
||||
when "post_count"
|
||||
q = q.includes(:tag).order("tags.post_count desc nulls last").references(:tags)
|
||||
else
|
||||
q = q.order("artists.id desc")
|
||||
end
|
||||
|
||||
if params[:is_active] == "true"
|
||||
q = q.active
|
||||
elsif params[:is_active] == "false"
|
||||
@@ -624,6 +611,18 @@ class Artist < ApplicationRecord
|
||||
q = q.includes(:tag).where("tags.name IS NULL OR tags.post_count <= 0").references(:tags)
|
||||
end
|
||||
|
||||
params[:order] ||= params.delete(:sort)
|
||||
case params[:order]
|
||||
when "name"
|
||||
q = q.order("artists.name")
|
||||
when "updated_at"
|
||||
q = q.order("artists.updated_at desc")
|
||||
when "post_count"
|
||||
q = q.includes(:tag).order("tags.post_count desc nulls last").order("artists.name").references(:tags)
|
||||
else
|
||||
q = q.apply_default_order(params)
|
||||
end
|
||||
|
||||
q
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user