class Decidim::Meetings::Admin::CloseMeeting
panel.
This command is executed when the user closes a Meeting from the admin
def call
Closes the meeting if valid.
def call return broadcast(:invalid) if form.invalid? transaction do close_meeting link_proposals end broadcast(:ok) end
def close_meeting
def close_meeting Decidim.traceability.perform_action!( :close, meeting, form.current_user ) do meeting.update!( closing_report: form.closing_report, attendees_count: form.attendees_count, contributions_count: form.contributions_count, attending_organizations: form.attending_organizations, closed_at: form.closed_at ) end Decidim::EventsManager.publish( event: "decidim.events.meetings.meeting_closed", event_class: Decidim::Meetings::CloseMeetingEvent, resource: meeting, affected_users: [meeting.organizer], followers: meeting.followers - [meeting.organizer] ) end
def initialize(form, meeting)
form - The form from which to get the data.
Initializes a CloseMeeting Command.
def initialize(form, meeting) @form = form @meeting = meeting end
def link_proposals
def link_proposals meeting.link_resources(proposals, "proposals_from_meeting") end
def proposals
def proposals meeting.sibling_scope(:proposals).where(id: @form.proposal_ids) end