class Decidim::Meetings::Directory::MeetingsController

Exposes the meeting resource so users can view them

def context_params

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

def default_filter_params

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

def default_search_params

def default_search_params
  {
    scope: Meeting.visible_meeting_for(current_user)
  }
end

def index

def index
  @meeting_spaces = search.results.map do |meeting|
    klass = meeting.component.participatory_space.class
    [klass.model_name.name.underscore, klass.model_name.human.pluralize]
  end.uniq
  @meeting_spaces = @meeting_spaces.sort_by do |_param, name|
    name
  end
  @meeting_spaces = @meeting_spaces.prepend(["all", t(".all")])
end

def meeting_components

def meeting_components
  @meeting_components ||= Decidim::Component
                          .where(manifest_name: "meetings")
                          .where(participatory_space: participatory_spaces)
                          .published
end

def meetings

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

def participatory_spaces

def participatory_spaces
  @participatory_spaces ||= current_organization.public_participatory_spaces
end

def search_klass

def search_klass
  MeetingSearch
end