class Decidim::Meetings::CloseMeeting
views.
This command is executed when the user closes a Meeting from the public
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 parsed_closing_report = Decidim::ContentProcessor.parse(form.closing_report, current_organization: form.current_organization).rewrite Decidim.traceability.perform_action!( :close, meeting, form.current_user ) do meeting.update!( attendees_count: form.attendees_count, closed_at: form.closed_at, closing_visible: true, closing_report: { I18n.locale => parsed_closing_report } ) end Decidim::EventsManager.publish( event: "decidim.events.meetings.meeting_closed", event_class: Decidim::Meetings::CloseMeetingEvent, resource: meeting, followers: meeting.followers ) 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