Class: Decidim::Organization

Inherits:
ApplicationRecord show all
Includes:
Loggable, Traceable
Defined in:
app/models/decidim/organization.rb

Overview

Organizations are one of the main models of Decidim. In a single Decidim installation we can find many organizations and each of them can start their own participatory processes.

Constant Summary collapse

SOCIAL_HANDLERS =
[:twitter, :facebook, :instagram, :youtube, :github].freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.log_presenter_class_for(_log) ⇒ Object



34
35
36
# File 'app/models/decidim/organization.rb', line 34

def self.log_presenter_class_for(_log)
  Decidim::AdminLog::OrganizationPresenter
end

Instance Method Details

#available_authorization_handlersObject



38
39
40
# File 'app/models/decidim/organization.rb', line 38

def available_authorization_handlers
  available_authorizations & Decidim.authorization_handlers.map(&:name)
end

#public_participatory_spacesObject



49
50
51
52
53
# File 'app/models/decidim/organization.rb', line 49

def public_participatory_spaces
  @public_participatory_spaces ||= Decidim.participatory_space_manifests.flat_map do |manifest|
    manifest.participatory_spaces.call(self).public_spaces
  end
end

#published_componentsObject



55
56
57
# File 'app/models/decidim/organization.rb', line 55

def published_components
  @published_components ||= Component.where(participatory_space: public_participatory_spaces).published
end

#top_scopesObject

Returns top level scopes for this organization.

Returns an ActiveRecord::Relation.



45
46
47
# File 'app/models/decidim/organization.rb', line 45

def top_scopes
  @top_scopes ||= scopes.top_level
end