Sha256: 5277995972b578359fc2342e7b52dc07eca91ac21b9db213d8f075fa0c3df86c
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
# frozen_string_literal: true require "active_support/concern" module Decidim module Lausanne module Budgets # Common logic to sorting resources module Orderable extend ActiveSupport::Concern included do include Decidim::Orderable private # Available orders based on enabled settings def available_orders @available_orders ||= begin available_orders = [] available_orders << "asc" available_orders << "most_voted" if votes_are_visible? available_orders += %w(highest_cost lowest_cost) available_orders end end def default_order available_orders.first end def votes_are_visible? current_settings.show_votes? end def reorder(projects) case order when "highest_cost" projects.order(budget_amount: :desc) when "lowest_cost" projects.order(budget_amount: :asc) when "asc" projects.order(Arel.sql("title->>'#{I18n.locale}' ASC")) when "random" projects.order_randomly(random_seed) else projects end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
decidim-lausanne-budgets-0.1.0 | app/controllers/concerns/decidim/lausanne/budgets/orderable.rb |