diff options
Diffstat (limited to 'app/models/concerns/sortable_title.rb')
-rw-r--r-- | app/models/concerns/sortable_title.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/app/models/concerns/sortable_title.rb b/app/models/concerns/sortable_title.rb new file mode 100644 index 00000000000..7c5cad17f4c --- /dev/null +++ b/app/models/concerns/sortable_title.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +module SortableTitle + extend ActiveSupport::Concern + + included do + scope :order_title_asc, -> { reorder(Arel::Nodes::Ascending.new(arel_table[:title].lower)) } + scope :order_title_desc, -> { reorder(Arel::Nodes::Descending.new(arel_table[:title].lower)) } + end + + class_methods do + def simple_sorts + super.merge( + { + 'title_asc' => -> { order_title_asc }, + 'title_desc' => -> { order_title_desc } + } + ) + end + end +end |