Class: Decidim::Budgets::Admin::ProjectForm
- Inherits:
-
Form
- Object
- AttributeObject::Form
- Form
- Decidim::Budgets::Admin::ProjectForm
- Defined in:
- decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb
Overview
This class holds a Form to create/update projects from Decidim’s admin panel.
Constant Summary
Constants included from AmendmentsHelper
Constants included from AttributeObject::TypeMap
AttributeObject::TypeMap::Boolean, AttributeObject::TypeMap::Decimal
Instance Attribute Summary
Attributes inherited from AttributeObject::Form
Instance Method Summary collapse
-
#budget ⇒ Object
Finds the Budget from the decidim_budgets_budget_id.
-
#category ⇒ Object
Finds the Category from the decidim_category_id.
-
#decidim_scope_id ⇒ Object
Scope identifier.
- #geocoded? ⇒ Boolean
- #geocoding_enabled? ⇒ Boolean
- #has_address? ⇒ Boolean
- #map_model(model) ⇒ Object
- #proposals ⇒ Object
-
#scope ⇒ Object
Finds the Scope from the given decidim_scope_id, uses the component scope if missing.
Methods included from ApplicationHelper
#cell, #edit_link, #extra_admin_link, #html_truncate, #present, #prevent_timeout_seconds, #resolve_presenter_class, #step_cta_url
Methods included from CacheHelper
Methods included from AmendmentsHelper
#accept_and_reject_buttons_for, #action_button_card_for, #allowed_to_accept_and_reject?, #allowed_to_promote?, #amend_button_for, #amendments_enabled?, #amendments_form_field_for, #amendments_form_fields_label, #amendments_form_fields_value, #can_participate_in_private_space?, #can_react_to_emendation?, #current_step, #emendation_actions_for, #emendation_announcement_for, #promote_button_for, #render_emendation_body, #total_steps, #wizard_aside_back_url, #wizard_header_title
Methods included from RichTextEditorHelper
Methods included from ContextualHelpHelper
Methods included from ScopesHelper
#has_visible_scopes?, #scope_name_for_picker, #scopes_picker_field, #scopes_picker_filter, #scopes_select_field, #scopes_select_tag
Methods included from TranslatableAttributes
Methods included from DecidimFormHelper
#areas_for_select, #base_error_messages, #decidim_form_for, #decidim_form_slug_url, #editor_field_tag, #form_field_has_error?, #form_required_explanation, #name_with_locale, #ordered_scopes_descendants, #ordered_scopes_descendants_for_select, #scopes_picker_field_tag, #tab_element_class_for, #translated_field_tag
Methods included from OmniauthHelper
#normalize_provider_name, #oauth_icon, #provider_name
Methods included from TranslationsHelper
empty_translatable, ensure_translatable, multi_translation, translated_in_current_locale?
Methods inherited from AttributeObject::Form
ensure_hash, from_model, from_params, hash_from, infer_model_name, mimic, mimicked_model_name, model_name, #persisted?, #to_key, #to_model, #to_param, #valid?, #with_context
Methods included from AttributeObject::Model
#[], #[]=, #attributes, #attributes_with_values, #initialize, #to_h
Instance Method Details
#budget ⇒ Object
Finds the Budget from the decidim_budgets_budget_id.
Returns a Decidim::Budgets:Budget
71 72 73 |
# File 'decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb', line 71 def budget @budget ||= context[:budget] end |
#category ⇒ Object
Finds the Category from the decidim_category_id.
Returns a Decidim::Category
78 79 80 |
# File 'decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb', line 78 def category @category ||= categories.find_by(id: decidim_category_id) end |
#decidim_scope_id ⇒ Object
Scope identifier
Returns the scope identifier related to the project
92 93 94 |
# File 'decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb', line 92 def decidim_scope_id super || scope&.id end |
#geocoded? ⇒ Boolean
64 65 66 |
# File 'decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb', line 64 def geocoded? latitude.present? && longitude.present? end |
#geocoding_enabled? ⇒ Boolean
56 57 58 |
# File 'decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb', line 56 def geocoding_enabled? Decidim::Map.available?(:geocoding) && current_component.settings.geocoding_enabled? end |
#has_address? ⇒ Boolean
60 61 62 |
# File 'decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb', line 60 def has_address? geocoding_enabled? && address.present? end |
#map_model(model) ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb', line 41 def map_model(model) self.proposal_ids = model.linked_resources(:proposals, "included_proposals").pluck(:id) self.selected = model.selected? return unless model.categorization self.decidim_category_id = model.categorization.decidim_category_id end |
#proposals ⇒ Object
50 51 52 53 54 |
# File 'decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb', line 50 def proposals @proposals ||= Decidim.find_resource_manifest(:proposals).try(:resource_scope, current_component) &.where(id: proposal_ids) &.order(title: :asc) end |
#scope ⇒ Object
Finds the Scope from the given decidim_scope_id, uses the component scope if missing.
Returns a Decidim::Scope
85 86 87 |
# File 'decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb', line 85 def scope @scope ||= @attributes["decidim_scope_id"].value ? current_component.scopes.find_by(id: @attributes["decidim_scope_id"].value) : current_component.scope end |