class Decidim::Meetings::Directory::MeetingsController
Exposes the meeting resource so users can view them
def calendar
def calendar render plain: CalendarRenderer.for(current_organization), content_type: "type/calendar" end
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(count: 2)] 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