Sha256: e483283e4c548c47c5faf9f10a024b1cb6c7b91b1ee172fcf249ec7772667cb0

Contents?: true

Size: 1.26 KB

Versions: 8

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

module Decidim
  module ContentBlocks
    class ParticipatorySpaceLastActivityCell < BaseCell
      DEFAULT_MAX_LAST_ACTIVITY_USERS = 6

      def render_recent_avatars
        return if last_activities_users.blank?

        render :recent_avatars
      end

      def participants_count
        @participants_count ||= activities_query.select(:decidim_user_id).distinct.count
      end

      def activities_query
        @activities_query ||= Decidim::ParticipatorySpaceLastActivity.new(resource).query
      end

      private

      def ordered_users_with_activities
        @ordered_users_with_activities ||=
          Decidim::ParticipatorySpaceLastActivity
          .new(resource).query
          .where.not(user: nil)
          .select("decidim_user_id, MAX(decidim_action_logs.created_at)")
          .group("decidim_user_id")
          .reorder("MAX(decidim_action_logs.created_at) DESC")
      end

      def last_activities_users
        @last_activities_users ||= ordered_users_with_activities.limit(max_last_activity_users).map(&:user)
      end

      def max_last_activity_users
        model.settings.try(:max_last_activity_users) || DEFAULT_MAX_LAST_ACTIVITY_USERS
      end

      def hide_participatory_space = true
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
decidim-core-0.28.5 app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb
decidim-core-0.28.4 app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb
decidim-core-0.28.3 app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb
decidim-core-0.28.2 app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb
decidim-core-0.28.1 app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb
decidim-core-0.28.0 app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb
decidim-core-0.28.0.rc5 app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb
decidim-core-0.28.0.rc4 app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb