Class: Decidim::Proposals::Admin::ProposalBaseForm
- Inherits:
-
Form
- Object
- AttributeObject::Form
- Form
- Decidim::Proposals::Admin::ProposalBaseForm
- Includes:
- ApplicationHelper, AttachmentAttributes, HasTaxonomyFormAttributes, TranslatableAttributes
- Defined in:
- decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb
Overview
A form object to be used when admin users want to create a proposal.
Direct Known Subclasses
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
- #author ⇒ Object
- #component_automatic_hashtags ⇒ Object
- #component_suggested_hashtags ⇒ Object
- #extra_hashtags ⇒ Object
- #geocoded? ⇒ Boolean
- #geocoding_enabled? ⇒ Boolean
- #has_address? ⇒ Boolean
- #map_model(model) ⇒ Object
-
#meeting_as_author ⇒ Object
Return the meeting as author.
-
#meetings ⇒ Object
Finds the Meetings of the current participatory space.
- #participatory_space_manifest ⇒ Object
- #suggested_hashtag_checked?(hashtag) ⇒ Boolean
- #suggested_hashtags ⇒ Object
Methods included from ApplicationHelper
#add_body_classes, #cell, #edit_link, #extra_admin_link, #html_truncate, #present, #prevent_timeout_seconds, #resolve_presenter_class, #text_initials
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?, #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 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
#author ⇒ Object
65 66 67 68 69 |
# File 'decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb', line 65 def return current_organization unless created_in_meeting? end |
#component_automatic_hashtags ⇒ Object
84 85 86 |
# File 'decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb', line 84 def @component_automatic_hashtags ||= ordered_hashtag_list(current_component.current_settings.) end |
#component_suggested_hashtags ⇒ Object
88 89 90 |
# File 'decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb', line 88 def @component_suggested_hashtags ||= ordered_hashtag_list(current_component.current_settings.) end |
#extra_hashtags ⇒ Object
71 72 73 |
# File 'decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb', line 71 def @extra_hashtags ||= ( + ).uniq end |
#geocoded? ⇒ Boolean
50 51 52 |
# File 'decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb', line 50 def geocoded? latitude.present? && longitude.present? end |
#geocoding_enabled? ⇒ Boolean
42 43 44 |
# File 'decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb', line 42 def geocoding_enabled? Decidim::Map.available?(:geocoding) && current_component.settings.geocoding_enabled? end |
#has_address? ⇒ Boolean
46 47 48 |
# File 'decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb', line 46 def has_address? geocoding_enabled? && address.present? end |
#map_model(model) ⇒ Object
31 32 33 34 |
# File 'decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb', line 31 def map_model(model) body = translated_attribute(model.body) @suggested_hashtags = Decidim::ContentRenderers::HashtagRenderer.new(body)..map(&:name).map(&:downcase) end |
#meeting_as_author ⇒ Object
Return the meeting as author
61 62 63 |
# File 'decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb', line 61 def @meeting_as_author ||= meetings.find_by(id: meeting_id) end |
#meetings ⇒ Object
Finds the Meetings of the current participatory space
55 56 57 58 |
# File 'decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb', line 55 def meetings @meetings ||= Decidim.find_resource_manifest(:meetings).try(:resource_scope, current_component) &.published&.order(title: :asc) end |
#participatory_space_manifest ⇒ Object
38 39 40 |
# File 'decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb', line 38 def participatory_space_manifest @participatory_space_manifest ||= current_component.participatory_space.manifest.name end |
#suggested_hashtag_checked?(hashtag) ⇒ Boolean
80 81 82 |
# File 'decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb', line 80 def suggested_hashtag_checked?(hashtag) .member?(hashtag) end |
#suggested_hashtags ⇒ Object
75 76 77 78 |
# File 'decidim-proposals/app/forms/decidim/proposals/admin/proposal_base_form.rb', line 75 def = super.to_set(&:downcase) .select { |hashtag| .member?(hashtag.downcase) } end |