Sha256: 3a4e5edfa5f33cdae4b1fe2b15c26a49710072ec39493b6a2f4f31be312537c1

Contents?: true

Size: 1.38 KB

Versions: 3

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true

module Decidim
  module Meetings
    # Exposes the meeting resource so users can view them
    class MeetingsController < Decidim::Meetings::ApplicationController
      include FilterResource
      include Paginable
      helper Decidim::WidgetUrlsHelper

      helper_method :meetings, :geocoded_meetings, :meeting

      def index
        return unless search.results.empty? && params.dig("filter", "date") != "past"

        @past_meetings = search_klass.new(search_params.merge(date: "past"))
        unless @past_meetings.results.empty?
          params[:filter] ||= {}
          params[:filter][:date] = "past"
          @forced_past_meetings = true
          @search = @past_meetings
        end
      end

      private

      def meeting
        @meeting ||= Meeting.where(component: current_component).find(params[:id])
      end

      def meetings
        @meetings ||= paginate(search.results)
      end

      def geocoded_meetings
        @geocoded_meetings ||= search.results.select(&:geocoded?)
      end

      def search_klass
        MeetingSearch
      end

      def default_filter_params
        {
          date: "upcoming",
          search_text: "",
          scope_id: "",
          category_id: ""
        }
      end

      def context_params
        { component: current_component, organization: current_organization }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
decidim-meetings-0.11.2 app/controllers/decidim/meetings/meetings_controller.rb
decidim-meetings-0.11.1 app/controllers/decidim/meetings/meetings_controller.rb
decidim-meetings-0.11.0.pre1 app/controllers/decidim/meetings/meetings_controller.rb