class Decidim::Meetings::Admin::MeetingForm
This class holds a Form to create/update meetings from Decidim’s admin panel.
def category
def category return unless current_component @category ||= categories.find_by(id: decidim_category_id) end
def decidim_scope_id
Scope identifier
def decidim_scope_id @decidim_scope_id || scope&.id end
def map_model(model)
def map_model(model) self.services = model.services.map do |service| MeetingServiceForm.new(service) end self.decidim_category_id = model.categorization.decidim_category_id if model.categorization presenter = MeetingPresenter.new(model) self.title = presenter.title(all_locales: true) self.description = presenter.description(all_locales: true) end
def number_of_services
def number_of_services services.size end
def organizer
def organizer @organizer ||= current_organization.users.find_by(id: organizer_id) end
def scope
Finds the Scope from the given decidim_scope_id, uses participatory space scope if missing.
def scope @scope ||= @decidim_scope_id ? current_participatory_space.scopes.find_by(id: @decidim_scope_id) : current_participatory_space.scope end
def scope_belongs_to_participatory_space_scope
def scope_belongs_to_participatory_space_scope errors.add(:decidim_scope_id, :invalid) if current_participatory_space.out_of_scope?(scope) end
def services_to_persist
def services_to_persist services.reject(&:deleted) end