Module: Decidim::DecidimAwesome

Includes:
ActiveSupport::Configurable
Defined in:
lib/decidim/decidim_awesome/version.rb,
lib/decidim/decidim_awesome/admin.rb,
lib/decidim/decidim_awesome/config.rb,
lib/decidim/decidim_awesome/engine.rb,
lib/decidim/decidim_awesome/awesome.rb,
lib/decidim/decidim_awesome/menu_hacker.rb,
lib/decidim/decidim_awesome/admin_engine.rb,
lib/decidim/decidim_awesome/custom_fields.rb,
lib/decidim/decidim_awesome/system_checker.rb,
lib/decidim/decidim_awesome/awesome_helpers.rb,
lib/decidim/decidim_awesome/voting_manifest.rb,
app/commands/decidim/decidim_awesome/command.rb,
lib/decidim/decidim_awesome/context_analyzers.rb,
app/helpers/decidim/decidim_awesome/map_helper.rb,
app/models/decidim/decidim_awesome/vote_weight.rb,
app/models/decidim/decidim_awesome/editor_image.rb,
lib/decidim/decidim_awesome/map_component/engine.rb,
app/forms/decidim/decidim_awesome/admin/menu_form.rb,
app/models/decidim/decidim_awesome/awesome_config.rb,
app/forms/decidim/decidim_awesome/admin/config_form.rb,
app/forms/decidim/decidim_awesome/editor_image_form.rb,
app/permissions/decidim/decidim_awesome/permissions.rb,
lib/decidim/decidim_awesome/iframe_component/engine.rb,
app/models/decidim/decidim_awesome/config_constraint.rb,
app/uploaders/decidim/decidim_awesome/image_uploader.rb,
app/middleware/decidim/decidim_awesome/current_config.rb,
app/models/decidim/decidim_awesome/application_record.rb,
app/forms/decidim/decidim_awesome/admin/intergram_form.rb,
app/models/decidim/decidim_awesome/paper_trail_version.rb,
lib/decidim/decidim_awesome/map_component/admin_engine.rb,
app/forms/decidim/decidim_awesome/admin/constraint_form.rb,
app/models/decidim/decidim_awesome/proposal_extra_field.rb,
app/commands/decidim/decidim_awesome/admin/update_config.rb,
app/commands/decidim/decidim_awesome/create_editor_image.rb,
app/cells/decidim/decidim_awesome/content_blocks/map_cell.rb,
app/jobs/decidim/decidim_awesome/export_admin_actions_job.rb,
app/models/concerns/decidim/decidim_awesome/user_override.rb,
app/permissions/decidim/decidim_awesome/admin/permissions.rb,
lib/decidim/decidim_awesome/iframe_component/admin_engine.rb,
app/jobs/decidim/decidim_awesome/migrate_legacy_images_job.rb,
app/presenters/decidim/decidim_awesome/role_base_presenter.rb,
app/commands/decidim/decidim_awesome/admin/create_menu_hack.rb,
app/commands/decidim/decidim_awesome/admin/update_menu_hack.rb,
app/models/concerns/decidim/decidim_awesome/has_vote_weight.rb,
app/commands/decidim/decidim_awesome/admin/create_constraint.rb,
app/commands/decidim/decidim_awesome/admin/destroy_menu_hack.rb,
app/commands/decidim/decidim_awesome/admin/update_constraint.rb,
app/forms/decidim/decidim_awesome/admin/custom_redirect_form.rb,
app/presenters/decidim/decidim_awesome/user_entity_presenter.rb,
app/commands/decidim/decidim_awesome/admin/destroy_constraint.rb,
app/commands/decidim/decidim_awesome/admin/rename_scope_label.rb,
app/cells/decidim/decidim_awesome/content_blocks/map_form_cell.rb,
app/commands/decidim/decidim_awesome/admin/create_scoped_admin.rb,
app/commands/decidim/decidim_awesome/admin/create_scoped_style.rb,
app/controllers/decidim/decidim_awesome/application_controller.rb,
app/helpers/decidim/decidim_awesome/amendments_helper_override.rb,
app/presenters/decidim/decidim_awesome/menu_presenter_override.rb,
lib/decidim/decidim_awesome/context_analyzers/request_analyzer.rb,
app/cells/decidim/decidim_awesome/voting/voting_cards_base_cell.rb,
app/commands/decidim/decidim_awesome/admin/destroy_scoped_admin.rb,
app/commands/decidim/decidim_awesome/admin/destroy_scoped_style.rb,
app/controllers/decidim/decidim_awesome/admin/checks_controller.rb,
app/controllers/decidim/decidim_awesome/admin/config_controller.rb,
app/controllers/decidim/decidim_awesome/editor_images_controller.rb,
app/helpers/decidim/decidim_awesome/admin/system_checker_helpers.rb,
lib/decidim/decidim_awesome/content_parsers/editor_images_parser.rb,
lib/decidim/decidim_awesome/context_analyzers/component_analyzer.rb,
app/commands/decidim/decidim_awesome/admin/create_custom_redirect.rb,
app/commands/decidim/decidim_awesome/admin/update_custom_redirect.rb,
app/presenters/decidim/decidim_awesome/paper_trail_base_presenter.rb,
app/types/concerns/decidim/decidim_awesome/proposal_type_override.rb,
app/cells/decidim/decidim_awesome/voting/voting_cards_counter_cell.rb,
app/commands/decidim/decidim_awesome/admin/destroy_custom_redirect.rb,
app/controllers/decidim/decidim_awesome/blank_component_controller.rb,
app/cells/concerns/decidim/decidim_awesome/proposal_m_cell_override.rb,
app/cells/decidim/decidim_awesome/voting/voting_cards_proposal_cell.rb,
app/controllers/concerns/decidim/decidim_awesome/not_found_redirect.rb,
app/controllers/decidim/decidim_awesome/admin/menu_hacks_controller.rb,
app/presenters/decidim/decidim_awesome/menu_item_presenter_override.rb,
app/controllers/decidim/decidim_awesome/admin/application_controller.rb,
app/controllers/decidim/decidim_awesome/admin/constraints_controller.rb,
app/controllers/decidim/decidim_awesome/map_component/map_controller.rb,
app/helpers/decidim/decidim_awesome/admin/config_constraints_helpers.rb,
app/controllers/concerns/decidim/decidim_awesome/needs_awesome_config.rb,
app/models/concerns/decidim/decidim_awesome/has_proposal_extra_fields.rb,
app/controllers/decidim/decidim_awesome/admin/scoped_admins_controller.rb,
app/controllers/decidim/decidim_awesome/admin/scoped_styles_controller.rb,
app/serializers/decidim/decidim_awesome/paper_trail_version_serializer.rb,
app/commands/decidim/decidim_awesome/admin/create_proposal_custom_field.rb,
app/commands/decidim/decidim_awesome/admin/destroy_proposal_custom_field.rb,
app/cells/decidim/decidim_awesome/voting/voting_cards_proposal_modal_cell.rb,
app/controllers/decidim/decidim_awesome/admin/custom_redirects_controller.rb,
app/helpers/decidim/decidim_awesome/proposals/application_helper_override.rb,
app/presenters/decidim/decidim_awesome/participatory_space_role_presenter.rb,
app/controllers/decidim/decidim_awesome/iframe_component/iframe_controller.rb,
lib/decidim/decidim_awesome/context_analyzers/participatory_space_analyzer.rb,
app/commands/concerns/decidim/decidim_awesome/admin/needs_constraint_helpers.rb,
app/validators/concerns/decidim/decidim_awesome/etiquette_validator_override.rb,
app/controllers/concerns/decidim/decidim_awesome/proposals/orderable_override.rb,
app/controllers/decidim/decidim_awesome/admin/admin_accountability_controller.rb,
app/serializers/concerns/decidim/decidim_awesome/proposal_serializer_override.rb,
app/controllers/decidim/decidim_awesome/admin/proposal_custom_fields_controller.rb,
app/forms/decidim/decidim_awesome/proposals/proposal_wizard_create_step_form_override.rb,
app/controllers/concerns/decidim/decidim_awesome/admin_accountability/admin/filterable.rb,
app/controllers/concerns/decidim/decidim_awesome/admin_accountability/admin/filterable_helper.rb,
app/controllers/concerns/decidim/decidim_awesome/proposals/proposal_votes_controller_override.rb

Overview

add a global helper with awesome configuration

Defined Under Namespace

Modules: Admin, AdminAccountability, AmendmentsHelperOverride, AwesomeHelpers, ContentBlocks, ContentParsers, ContextAnalyzers, EtiquetteValidatorOverride, HasProposalExtraFields, HasVoteWeight, IframeComponent, MapComponent, MapHelper, MenuItemPresenterOverride, MenuPresenterOverride, NeedsAwesomeConfig, NotFoundRedirect, ProposalMCellOverride, ProposalSerializerOverride, ProposalTypeOverride, Proposals, SystemChecker, UserOverride, Voting Classes: AdminEngine, ApplicationController, ApplicationRecord, AwesomeConfig, BlankComponentController, Command, Config, ConfigConstraint, CreateEditorImage, CurrentConfig, CustomFields, EditorImage, EditorImageForm, EditorImagesController, Engine, ExportAdminActionsJob, ImageUploader, MenuHacker, MigrateLegacyImagesJob, PaperTrailBasePresenter, PaperTrailVersion, PaperTrailVersionSerializer, ParticipatorySpaceRolePresenter, Permissions, ProposalExtraField, RoleBasePresenter, UserEntityPresenter, VoteWeight, VotingManifest

Constant Summary collapse

VERSION =
"0.10.2"
COMPAT_DECIDIM_VERSION =
[">= 0.26.0", "< 0.28"].freeze

Class Method Summary collapse

Class Method Details

.collation_for(locale) ⇒ Object



283
284
285
286
287
288
289
290
# File 'lib/decidim/decidim_awesome/awesome.rb', line 283

def self.collation_for(locale)
  @collation_for ||= {}
  @collation_for[locale] ||= begin
    res = ActiveRecord::Base.connection.execute(Arel.sql("SELECT collname FROM pg_collation WHERE collname LIKE '#{locale}-x-icu' LIMIT 1")).first
    res ||= ActiveRecord::Base.connection.execute(Arel.sql("SELECT collname FROM pg_collation WHERE collname LIKE '#{locale[0..1]}%' LIMIT 1")).first
    res["collname"] if res
  end
end

.enabled?(config_vars) ⇒ Boolean

Returns:

  • (Boolean)


292
293
294
295
296
297
298
299
300
# File 'lib/decidim/decidim_awesome/awesome.rb', line 292

def self.enabled?(config_vars)
  config_vars = [config_vars] unless config_vars.respond_to?(:any?)

  config_vars.any? do |item|
    next unless config.has_key?(item.to_sym)

    config.send(item) != :disabled
  end
end

.legacy_version?Boolean

Returns:

  • (Boolean)


312
313
314
# File 'lib/decidim/decidim_awesome/awesome.rb', line 312

def self.legacy_version?
  Decidim.version[0..3] == "0.26"
end

.possible_additional_proposal_sortingsObject

HELPERS

pass a single config var or an array of them any non disabled match will return as true



275
276
277
278
279
280
281
# File 'lib/decidim/decidim_awesome/awesome.rb', line 275

def self.possible_additional_proposal_sortings
  @possible_additional_proposal_sortings ||= additional_proposal_sortings.to_a.filter_map do |sort|
    next unless sort.to_sym.in?([:az, :za, :supported_first, :supported_last])

    sort.to_s
  end
end

.register_component(manifest, &block) ⇒ Object

Wrap registered components to register it later, after initializing so we can honor disabled_components config



308
309
310
# File 'lib/decidim/decidim_awesome/awesome.rb', line 308

def self.register_component(manifest, &block)
  registered_components << [manifest, block]
end

.registered_componentsObject



302
303
304
# File 'lib/decidim/decidim_awesome/awesome.rb', line 302

def self.registered_components
  @registered_components ||= []
end

.voting_registryObject

Public: Stores an instance of ContentBlockRegistry



266
267
268
# File 'lib/decidim/decidim_awesome/awesome.rb', line 266

def self.voting_registry
  @voting_registry ||= Decidim::ManifestRegistry.new("decidim_awesome/voting")
end