Module: Decidim::HasSettings

Extended by:
ActiveSupport::Concern
Included in:
Feature
Defined in:
decidim-core/lib/decidim/has_settings.rb

Instance Method Summary collapse

Instance Method Details

#active_step_settingsObject



41
42
43
44
45
46
# File 'decidim-core/lib/decidim/has_settings.rb', line 41

def active_step_settings
  active_step = participatory_process.active_step
  return default_step_settings unless active_step

  step_settings.fetch(active_step.id.to_s)
end

#default_step_settingsObject



21
22
23
# File 'decidim-core/lib/decidim/has_settings.rb', line 21

def default_step_settings
  settings_schema(:step).new(self[:settings]["default_step"])
end

#default_step_settings=(data) ⇒ Object



25
26
27
# File 'decidim-core/lib/decidim/has_settings.rb', line 25

def default_step_settings=(data)
  self[:settings]["default_step"] = serialize_settings(settings_schema(:step), data)
end

#settingsObject



13
14
15
# File 'decidim-core/lib/decidim/has_settings.rb', line 13

def settings
  settings_schema(:global).new(self[:settings]["global"])
end

#settings=(data) ⇒ Object



17
18
19
# File 'decidim-core/lib/decidim/has_settings.rb', line 17

def settings=(data)
  self[:settings]["global"] = serialize_settings(settings_schema(:global), data)
end

#step_settingsObject



29
30
31
32
33
# File 'decidim-core/lib/decidim/has_settings.rb', line 29

def step_settings
  participatory_process.steps.each_with_object({}) do |step, result|
    result[step.id.to_s] = settings_schema(:step).new(self[:settings].dig("steps", step.id.to_s))
  end
end

#step_settings=(data) ⇒ Object



35
36
37
38
39
# File 'decidim-core/lib/decidim/has_settings.rb', line 35

def step_settings=(data)
  self[:settings]["steps"] = data.each_with_object({}) do |(key, value), result|
    result[key.to_s] = serialize_settings(settings_schema(:step), value)
  end
end