Class: Decidim::Toggle::UpdateAuthorizationsForm

Inherits:
Form
  • Object
show all
Defined in:
app/forms/decidim/toggle/update_authorizations_form.rb

Overview

Vanilla Decidim: available_authorizations is a string array of workflow names. Other gems may replace this tab (same identifier :authorizations); see OrganizationSettingsTabs.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.collection_for_available_authorizationsObject



19
20
21
# File 'app/forms/decidim/toggle/update_authorizations_form.rb', line 19

def self.collection_for_available_authorizations
  Decidim.authorization_workflows.map { |w| [w.name, w.description] }
end

.from_model(organization) ⇒ Object



15
16
17
# File 'app/forms/decidim/toggle/update_authorizations_form.rb', line 15

def self.from_model(organization)
  from_params(organization: { available_authorizations: Array(organization.available_authorizations).map(&:to_s) })
end

.from_params(params, additional_params = {}) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'app/forms/decidim/toggle/update_authorizations_form.rb', line 23

def self.from_params(params, additional_params = {})
  params = params.to_h.with_indifferent_access if params.respond_to?(:to_h)
  attrs = params[:organization] || params
  if attrs[:available_authorizations].nil?
    params = params.dup
    params[:organization] = (params[:organization] || {}).merge(available_authorizations: [])
  end
  super(params, additional_params)
end

Instance Method Details

#clean_available_authorizationsObject



33
34
35
36
37
38
39
# File 'app/forms/decidim/toggle/update_authorizations_form.rb', line 33

def clean_available_authorizations
  @clean_available_authorizations ||= if available_authorizations.blank?
                                        []
                                      else
                                        available_authorizations.map(&:to_s).select(&:present?)
                                      end
end