Sha256: 44b8c0d771a3aeab07412999bc8807db5747531cb676ab233d0d3ad185e76480

Contents?: true

Size: 976 Bytes

Versions: 6

Compression:

Stored size: 976 Bytes

Contents

# frozen_string_literal: true

require "active_support/concern"

module Decidim
  module EnhancedTextwork
    # Common logic to ordering resources
    module CollaborativeOrderable
      extend ActiveSupport::Concern

      included do
        include Decidim::Orderable

        private

        # Available orders based on enabled settings
        def available_orders
          @available_orders ||= begin
            available_orders = %w(random recent)
            available_orders << "most_contributed"
            available_orders
          end
        end

        def default_order
          detect_order("most_contributed")
        end

        def reorder(drafts)
          case order
          when "random"
            drafts.order_randomly(random_seed)
          when "most_contributed"
            drafts.order(contributions_count: :desc)
          when "recent"
            drafts.order(created_at: :desc)
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
decidim-enhanced_textwork-1.0.5 app/controllers/concerns/decidim/enhanced_textwork/collaborative_orderable.rb
decidim-enhanced_textwork-1.0.4 app/controllers/concerns/decidim/enhanced_textwork/collaborative_orderable.rb
decidim-enhanced_textwork-1.0.3 app/controllers/concerns/decidim/enhanced_textwork/collaborative_orderable.rb
decidim-enhanced_textwork-1.0.2 app/controllers/concerns/decidim/enhanced_textwork/collaborative_orderable.rb
decidim-enhanced_textwork-1.0.1 app/controllers/concerns/decidim/enhanced_textwork/collaborative_orderable.rb
decidim-enhanced_textwork-1.0.0 app/controllers/concerns/decidim/enhanced_textwork/collaborative_orderable.rb