Class: Decidim::Initiatives::InitiativeForm
Overview
A form object used to collect the data for a new initiative.
Constant Summary
AttributeObject::TypeMap::Boolean, AttributeObject::TypeMap::Decimal
Instance Attribute Summary
#context
Instance Method Summary
collapse
#default_locale?
#type
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
#[], #[]=, #attributes, #attributes_with_values, #initialize, #to_h
Instance Method Details
#area ⇒ Object
54
55
56
|
# File 'decidim-initiatives/app/forms/decidim/initiatives/initiative_form.rb', line 54
def area
@area ||= current_organization.areas.find_by(id: area_id)
end
|
#area_updatable? ⇒ Boolean
50
51
52
|
# File 'decidim-initiatives/app/forms/decidim/initiatives/initiative_form.rb', line 50
def area_updatable?
@area_updatable ||= current_user.admin? || context.initiative.created?
end
|
#available_scopes ⇒ Object
78
79
80
81
82
83
84
|
# File 'decidim-initiatives/app/forms/decidim/initiatives/initiative_form.rb', line 78
def available_scopes
@available_scopes ||= if type.only_global_scope_enabled?
type.scopes.where(scope: nil)
else
type.scopes
end
end
|
#initiative_type ⇒ Object
58
59
60
|
# File 'decidim-initiatives/app/forms/decidim/initiatives/initiative_form.rb', line 58
def initiative_type
@initiative_type ||= type_id ? InitiativesType.find(type_id) : context.initiative.type
end
|
#map_model(model) ⇒ Object
33
34
35
36
37
38
39
40
|
# File 'decidim-initiatives/app/forms/decidim/initiatives/initiative_form.rb', line 33
def map_model(model)
self.type_id = model.type.id
self.scope_id = model.scope&.id
self.decidim_user_group_id = model.decidim_user_group_id
self.signature_type = model.signature_type || initiative_type.signature_type
self.title = translated_attribute(model.title)
self.description = translated_attribute(model.description)
end
|
#scope ⇒ Object
68
69
70
|
# File 'decidim-initiatives/app/forms/decidim/initiatives/initiative_form.rb', line 68
def scope
@scope ||= Scope.find(scope_id) if scope_id.present?
end
|
#scope_id ⇒ Object
72
73
74
75
76
|
# File 'decidim-initiatives/app/forms/decidim/initiatives/initiative_form.rb', line 72
def scope_id
return nil if type.only_global_scope_enabled?
super.presence
end
|
#scoped_type_id ⇒ Object
62
63
64
65
66
|
# File 'decidim-initiatives/app/forms/decidim/initiatives/initiative_form.rb', line 62
def scoped_type_id
return unless type && scope_id
type.scopes.find_by(decidim_scopes_id: scope_id.presence).id
end
|
#signature_type_updatable? ⇒ Boolean
42
43
44
|
# File 'decidim-initiatives/app/forms/decidim/initiatives/initiative_form.rb', line 42
def signature_type_updatable?
state == "created" || state.nil?
end
|
#state_updatable? ⇒ Boolean
46
47
48
|
# File 'decidim-initiatives/app/forms/decidim/initiatives/initiative_form.rb', line 46
def state_updatable?
false
end
|