Sha256: ae61ec11a22bbf52186de44f91853a3751720f2d433292256f02ed7676f926f0

Contents?: true

Size: 1.87 KB

Versions: 12

Compression:

Stored size: 1.87 KB

Contents

# frozen_string_literal: true

module Decidim
  # The controller to show all the last activities in a Decidim Organization.
  class UserActivitiesController < Decidim::ApplicationController
    include Paginable
    include UserGroups
    include FilterResource
    include Flaggable

    helper Decidim::ResourceHelper
    helper_method :activities, :resource_types, :user

    def index
      raise ActionController::RoutingError, "Missing user: #{params[:nickname]}" unless user
      raise ActionController::RoutingError, "Blocked User" if user.blocked? && !current_user&.admin?
    end

    private

    def user
      return unless params[:nickname]

      @user ||= current_organization.users.find_by("LOWER(nickname) = ?", params[:nickname].downcase)
    end

    def activities
      @activities ||= paginate(
        if own_activities?
          OwnActivities.new(current_organization, **activity_options).query.with_private_resources
        else
          PublicActivities.new(current_organization, **activity_options).query.with_all_resources
        end
      )
    end

    def activity_options
      {
        user: user,
        current_user: current_user,
        resource_name: filter.resource_type
      }
    end

    def own_activities?
      @own_activities ||= current_user == user
    end

    def default_filter_params
      { resource_type: nil }
    end

    def resource_types
      @resource_types = begin
        array = %w(Decidim::Proposals::CollaborativeDraft
                   Decidim::Comments::Comment
                   Decidim::Debates::Debate
                   Decidim::Initiative
                   Decidim::Meetings::Meeting
                   Decidim::Blogs::Post
                   Decidim::Proposals::Proposal
                   Decidim::Consultations::Question)
        array << "Decidim::Budgets::Order" if own_activities?
        array
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
decidim-core-0.27.9 app/controllers/decidim/user_activities_controller.rb
decidim-core-0.27.8 app/controllers/decidim/user_activities_controller.rb
decidim-core-0.27.7 app/controllers/decidim/user_activities_controller.rb
decidim-core-0.27.6 app/controllers/decidim/user_activities_controller.rb
decidim-core-0.27.5 app/controllers/decidim/user_activities_controller.rb
decidim-core-0.27.4 app/controllers/decidim/user_activities_controller.rb
decidim-core-0.27.3 app/controllers/decidim/user_activities_controller.rb
decidim-core-0.27.2 app/controllers/decidim/user_activities_controller.rb
decidim-core-0.27.1 app/controllers/decidim/user_activities_controller.rb
decidim-core-0.27.0 app/controllers/decidim/user_activities_controller.rb
decidim-core-0.27.0.rc2 app/controllers/decidim/user_activities_controller.rb
decidim-core-0.27.0.rc1 app/controllers/decidim/user_activities_controller.rb