Sha256: 92dadd332c493768cc122208ac9562c8e042eb00a6f2b15c9d1a16573a9f4de7

Contents?: true

Size: 1.39 KB

Versions: 25

Compression:

Stored size: 1.39 KB

Contents

# frozen_string_literal: true

module Decidim
  module ContentBlocks
    class HighlightedElementsCell < Decidim::ViewModel
      include Decidim::CardHelper

      def elements
        @elements ||= case model.settings.order
                      when "recent"
                        base_relation.order_by_most_recent
                      else
                        base_relation.order_randomly(random_seed)
                      end.limit(limit)
      end

      def base_relation
        raise "Please, overwrite this method. Inheriting classes should define their own base relation"
      end

      def show
        return if elements.blank?

        render
      end

      def published_components
        @published_components ||= if model.scope_name == "participatory_process_group_homepage"
                                    group = Decidim::ParticipatoryProcessGroup.find(model.scoped_resource_id)
                                    Decidim::Component.where(participatory_space: group.participatory_processes).published
                                  else
                                    Decidim::Component.none
                                  end
      end

      def block_id
        "#{model.scope_name}-#{model.manifest_name}".parameterize.gsub("_", "-")
      end

      private

      def limit
        4
      end

      def random_seed
        rand * 2 - 1
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
decidim-core-0.26.10 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.26.9 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.26.8 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.26.7 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.26.5 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.26.4 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.26.3 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.26.2 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.26.1 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.26.0 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.26.0.rc2 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.26.0.rc1 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.25.2 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.25.1 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.25.0 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.25.0.rc4 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.25.0.rc3 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.25.0.rc2 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.25.0.rc1 app/cells/decidim/content_blocks/highlighted_elements_cell.rb
decidim-core-0.24.3 app/cells/decidim/content_blocks/highlighted_elements_cell.rb