class Decidim::Meetings::MeetingsController

Exposes the meeting resource so users can view them

def context_params

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

def default_filter_params

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

def default_search_params

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

def index

def index
  return unless search.results.blank? && params.dig("filter", "date") != "past"
  @past_meetings = search_klass.new(search_params.merge(date: "past"))
  if @past_meetings.results.present?
    params[:filter] ||= {}
    params[:filter][:date] = "past"
    @forced_past_meetings = true
    @search = @past_meetings
  end
end

def meeting

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

def meetings

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

def registration

def registration
  @registration ||= meeting.registrations.find_by(user: current_user)
end

def search_klass

def search_klass
  MeetingSearch
end

def show

def show
  return if meeting.current_user_can_visit_meeting?(current_user)
  flash[:alert] = I18n.t("meeting.not_allowed", scope: "decidim.meetings")
  redirect_to action: "index"
end