Sha256: 089b7f5e91574f19194b0b52d9a2f2310f39c4d2dc63202d206bb979cfb4604a

Contents?: true

Size: 1.48 KB

Versions: 18

Compression:

Stored size: 1.48 KB

Contents

# frozen_string_literal: true

module Decidim
  module ParticipatoryProcesses
    # This module, when injected into a controller, ensures there's a
    # Participatory Process available and deducts it from the context.
    module NeedsParticipatoryProcess
      def self.enhance_controller(instance_or_module)
        instance_or_module.class_eval do
          helper_method :current_participatory_process
        end
      end

      def self.extended(base)
        base.extend Decidim::NeedsOrganization, InstanceMethods

        enhance_controller(base)
      end

      def self.included(base)
        base.include Decidim::NeedsOrganization, InstanceMethods

        enhance_controller(base)
      end

      module InstanceMethods
        # Public: Finds the current Participatory Process given this controller's
        # context.
        #
        # Returns the current ParticipatoryProcess.
        def current_participatory_process
          @current_participatory_process ||= detect_participatory_process
        end

        alias current_participatory_space current_participatory_process

        private

        def ability_context
          super.merge(current_participatory_process: current_participatory_process)
        end

        def detect_participatory_process
          request.env["current_participatory_process"] ||
            OrganizationParticipatoryProcesses.new(current_organization).query.find(params[:participatory_process_id] || params[:id])
        end
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
decidim-participatory_processes-0.6.8 app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-0.6.8 decidim-participatory_processes/app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-participatory_processes-0.6.7 app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-0.6.7 decidim-participatory_processes/app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-participatory_processes-0.6.6 app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-0.6.6 decidim-participatory_processes/app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-participatory_processes-0.6.5 app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-0.6.5 decidim-participatory_processes/app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-participatory_processes-0.6.4 app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-0.6.4 decidim-participatory_processes/app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-participatory_processes-0.6.3 app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-0.6.3 decidim-participatory_processes/app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-participatory_processes-0.6.2 app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-0.6.2 decidim-participatory_processes/app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-participatory_processes-0.6.1 app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-0.6.1 decidim-participatory_processes/app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-participatory_processes-0.6.0 app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb
decidim-0.6.0 decidim-participatory_processes/app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb