Class: Decidim::Assemblies::Admin::AssemblyForm

Inherits:
Form show all
Includes:
HasTaxonomyFormAttributes, HasUploadValidations, TranslatableAttributes
Defined in:
decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_form.rb

Overview

A form object used to create assemblies from the admin dashboard.

Constant Summary collapse

CREATED_BY =
%w(city_council public others).freeze

Constants included from Decidim::AttributeObject::TypeMap

Decidim::AttributeObject::TypeMap::Boolean, Decidim::AttributeObject::TypeMap::Decimal

Instance Attribute Summary

Attributes inherited from Decidim::AttributeObject::Form

#context

Instance Method Summary collapse

Methods included from HasUploadValidations

#attached_uploader, #maximum_avatar_size, #maximum_upload_size

Methods included from TranslatableAttributes

#attachment?, #default_locale?

Methods inherited from Decidim::AttributeObject::Form

ensure_hash, from_model, from_params, hash_from, infer_model_name, #map_model, mimic, mimicked_model_name, model_name, #persisted?, #to_key, #to_model, #to_param, #valid?, #with_context

Methods included from Decidim::AttributeObject::Model

#[], #[]=, #attributes, #attributes_with_values, #initialize, #to_h

Instance Method Details

#created_by_for_selectObject



91
92
93
94
95
96
97
98
# File 'decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_form.rb', line 91

def created_by_for_select
  CREATED_BY.map do |creator|
    [
      I18n.t("created_by.#{creator}", scope: "decidim.assemblies"),
      creator
    ]
  end
end

#ensure_parent_cannot_be_childObject



84
85
86
87
88
89
# File 'decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_form.rb', line 84

def ensure_parent_cannot_be_child
  return if id.blank?

  available_assemblies = Decidim::Assemblies::ParentAssembliesForSelect.for(current_organization, Assembly.find(id))
  errors.add(:parent, :invalid) unless available_assemblies.include? parent
end

#parentObject



100
101
102
# File 'decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_form.rb', line 100

def parent
  @parent ||= organization_assemblies.find_by(id: parent_id)
end

#participatory_space_manifestObject



80
81
82
# File 'decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_form.rb', line 80

def participatory_space_manifest
  :assemblies
end

#processes_for_selectObject



104
105
106
107
108
# File 'decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_form.rb', line 104

def processes_for_select
  @processes_for_select ||= organization_participatory_processes
                                &.map { |pp| [translated_attribute(pp.title), pp.id] }
                                &.sort_by { |arr| arr[0] }
end