Class: Decidim::Meetings::Admin::MeetingForm
- Inherits:
-
Form
- Object
- Form
- Decidim::Meetings::Admin::MeetingForm
- Includes:
- TranslatableAttributes
- Defined in:
- app/forms/decidim/meetings/admin/meeting_form.rb
Overview
This class holds a Form to create/update translatable meetings from Decidim’s admin panel.
Instance Method Summary collapse
- #category ⇒ Object
-
#decidim_scope_id ⇒ Object
Scope identifier.
- #geocoded? ⇒ Boolean
- #geocoding_enabled? ⇒ Boolean
- #has_address? ⇒ Boolean
- #map_model(model) ⇒ Object
- #number_of_services ⇒ Object
-
#scope ⇒ Object
Finds the Scope from the given decidim_scope_id, uses component scope if missing.
- #services_to_persist ⇒ Object
Instance Method Details
#category ⇒ Object
78 79 80 81 82 |
# File 'app/forms/decidim/meetings/admin/meeting_form.rb', line 78 def category return unless current_component @category ||= categories.find_by(id: decidim_category_id) end |
#decidim_scope_id ⇒ Object
Scope identifier
Returns the scope identifier related to the meeting
74 75 76 |
# File 'app/forms/decidim/meetings/admin/meeting_form.rb', line 74 def decidim_scope_id @decidim_scope_id || scope&.id end |
#geocoded? ⇒ Boolean
92 93 94 |
# File 'app/forms/decidim/meetings/admin/meeting_form.rb', line 92 def geocoded? latitude.present? && longitude.present? end |
#geocoding_enabled? ⇒ Boolean
84 85 86 |
# File 'app/forms/decidim/meetings/admin/meeting_form.rb', line 84 def geocoding_enabled? Decidim::Map.available?(:geocoding) end |
#has_address? ⇒ Boolean
88 89 90 |
# File 'app/forms/decidim/meetings/admin/meeting_form.rb', line 88 def has_address? geocoding_enabled? && address.present? end |
#map_model(model) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 |
# File 'app/forms/decidim/meetings/admin/meeting_form.rb', line 42 def map_model(model) self.services = model.services.map do |service| MeetingServiceForm.from_model(service) end self.decidim_category_id = model.categorization.decidim_category_id if model.categorization presenter = MeetingPresenter.new(model) self.title = presenter.title(all_locales: title.is_a?(Hash)) self.description = presenter.description(all_locales: description.is_a?(Hash)) end |
#number_of_services ⇒ Object
58 59 60 |
# File 'app/forms/decidim/meetings/admin/meeting_form.rb', line 58 def number_of_services services.size end |
#scope ⇒ Object
Finds the Scope from the given decidim_scope_id, uses component scope if missing.
Returns a Decidim::Scope
67 68 69 |
# File 'app/forms/decidim/meetings/admin/meeting_form.rb', line 67 def scope @scope ||= @decidim_scope_id ? current_component.scopes.find_by(id: @decidim_scope_id) : current_component.scope end |
#services_to_persist ⇒ Object
54 55 56 |
# File 'app/forms/decidim/meetings/admin/meeting_form.rb', line 54 def services_to_persist services.reject(&:deleted) end |