Sha256: c78ae7121161a455f39fc153af8b4cf5cefa38e9176531f0a777470cd3e41f58

Contents?: true

Size: 1.78 KB

Versions: 51

Compression:

Stored size: 1.78 KB

Contents

# frozen_string_literal: true

module Decidim
  module Conferences
    # A controller that holds the logic to show Conferences in a
    # public layout.
    class ConferencesController < Decidim::Conferences::ApplicationController
      include ParticipatorySpaceContext
      participatory_space_layout only: :show

      helper Decidim::AttachmentsHelper
      helper Decidim::IconHelper
      helper Decidim::WidgetUrlsHelper
      helper Decidim::SanitizeHelper
      helper Decidim::ResourceReferenceHelper
      helper Decidim::Conferences::PartnersHelper

      helper_method :collection, :promoted_conferences, :conferences, :stats

      def index
        redirect_to "/404" if published_conferences.none?

        enforce_permission_to :list, :conference
      end

      def show
        check_current_user_can_visit_space
      end

      def user_diploma
        render layout: "decidim/diploma"
      end

      private

      def current_participatory_space
        return unless params[:slug]

        @current_participatory_space ||= OrganizationConferences.new(current_organization).query.where(slug: params[:slug]).or(
          OrganizationConferences.new(current_organization).query.where(id: params[:slug])
        ).first!
      end

      def published_conferences
        @published_conferences ||= OrganizationPublishedConferences.new(current_organization, current_user)
      end

      def conferences
        @conferences ||= OrganizationPrioritizedConferences.new(current_organization, current_user)
      end

      alias collection conferences

      def promoted_conferences
        @promoted_conferences ||= conferences | PromotedConferences.new
      end

      def stats
        @stats ||= ConferenceStatsPresenter.new(conference: current_participatory_space)
      end
    end
  end
end

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
decidim-conferences-0.26.8 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.27.4 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.27.3 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.26.7 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.26.5 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.27.2 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.27.1 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.26.4 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.27.0 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.26.3 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.27.0.rc2 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.27.0.rc1 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.26.2 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.26.1 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.26.0 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.26.0.rc2 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.26.0.rc1 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.25.2 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.25.1 app/controllers/decidim/conferences/conferences_controller.rb
decidim-conferences-0.25.0 app/controllers/decidim/conferences/conferences_controller.rb