Module: Decidim

Defined in:
lib/decidim/map.rb,
lib/decidim/env.rb,
lib/decidim/core.rb,
lib/decidim/menu.rb,
lib/decidim/oauth.rb,
lib/decidim/query.rb,
lib/decidim/seeds.rb,
lib/decidim/assets.rb,
lib/decidim/events.rb,
lib/decidim/routes.rb,
lib/decidim/spring.rb,
lib/decidim/command.rb,
lib/decidim/upgrade.rb,
lib/decidim/core/api.rb,
lib/decidim/etherpad.rb,
lib/decidim/has_area.rb,
lib/decidim/likeable.rb,
lib/decidim/loggable.rb,
lib/decidim/paddable.rb,
lib/decidim/scopable.rb,
lib/decidim/snippets.rb,
lib/decidim/amendable.rb,
lib/decidim/core/menu.rb,
lib/decidim/exporters.rb,
lib/decidim/menu_item.rb,
lib/decidim/traceable.rb,
lib/decidim/webpacker.rb,
app/forms/decidim/form.rb,
lib/decidim/attributes.rb,
lib/decidim/authorable.rb,
lib/decidim/components.rb,
lib/decidim/core/seeds.rb,
lib/decidim/followable.rb,
lib/decidim/geocodable.rb,
lib/decidim/io_encoder.rb,
lib/decidim/publicable.rb,
lib/decidim/randomable.rb,
lib/decidim/reportable.rb,
lib/decidim/searchable.rb,
lib/decidim/view_hooks.rb,
lib/decidim/view_model.rb,
app/models/decidim/area.rb,
app/models/decidim/like.rb,
app/models/decidim/user.rb,
lib/decidim/core/engine.rb,
lib/decidim/file_zipper.rb,
lib/decidim/maintenance.rb,
lib/decidim/map/utility.rb,
lib/decidim/shakapacker.rb,
app/models/decidim/scope.rb,
lib/decidim/acts_as_tree.rb,
lib/decidim/admin_filter.rb,
lib/decidim/asset_router.rb,
lib/decidim/coauthorable.rb,
lib/decidim/core/version.rb,
lib/decidim/deprecations.rb,
lib/decidim/etherpad/pad.rb,
lib/decidim/form_builder.rb,
lib/decidim/form_factory.rb,
lib/decidim/gamification.rb,
lib/decidim/has_category.rb,
lib/decidim/has_settings.rb,
lib/decidim/map/frontend.rb,
lib/decidim/map/provider.rb,
lib/decidim/participable.rb,
lib/decidim/resourceable.rb,
app/models/decidim/follow.rb,
app/models/decidim/report.rb,
lib/decidim/engine_router.rb,
lib/decidim/exporters/csv.rb,
lib/decidim/exporters/pdf.rb,
lib/decidim/has_component.rb,
lib/decidim/has_reference.rb,
lib/decidim/has_workflows.rb,
lib/decidim/icon_registry.rb,
lib/decidim/map/geocoding.rb,
lib/decidim/menu_registry.rb,
lib/decidim/nicknamizable.rb,
lib/decidim/taxonomizable.rb,
app/cells/decidim/map_cell.rb,
lib/decidim/acts_as_author.rb,
lib/decidim/block_registry.rb,
lib/decidim/content_blocks.rb,
lib/decidim/event_recorder.rb,
lib/decidim/exporters/json.rb,
lib/decidim/faker/internet.rb,
lib/decidim/friendly_dates.rb,
lib/decidim/map/static_map.rb,
lib/decidim/soft_deletable.rb,
lib/decidim/stats_registry.rb,
lib/decidim/tooltip_helper.rb,
app/cells/decidim/card_cell.rb,
app/cells/decidim/diff_cell.rb,
app/cells/decidim/tags_cell.rb,
app/commands/decidim/search.rb,
app/jobs/decidim/export_job.rb,
app/models/decidim/category.rb,
app/models/decidim/identity.rb,
app/models/decidim/reminder.rb,
app/models/decidim/taxonomy.rb,
lib/decidim/assets/tailwind.rb,
lib/decidim/attributes/blob.rb,
lib/decidim/attributes/hash.rb,
lib/decidim/content_parsers.rb,
lib/decidim/diffy_extension.rb,
lib/decidim/exporters/excel.rb,
lib/decidim/faker/localized.rb,
lib/decidim/fingerprintable.rb,
lib/decidim/has_attachments.rb,
lib/decidim/map/dynamic_map.rb,
lib/decidim/resource_helper.rb,
lib/decidim/user_reportable.rb,
app/cells/decidim/badge_cell.rb,
app/cells/decidim/photo_cell.rb,
app/models/decidim/amendment.rb,
app/models/decidim/area_type.rb,
app/models/decidim/component.rb,
lib/decidim/attribute_object.rb,
lib/decidim/attributes/array.rb,
lib/decidim/attributes/model.rb,
lib/decidim/common_passwords.rb,
lib/decidim/components/namer.rb,
lib/decidim/jsonb_attributes.rb,
lib/decidim/map/autocomplete.rb,
lib/decidim/map/provider/osm.rb,
lib/decidim/moderation_tools.rb,
lib/decidim/record_encryptor.rb,
app/cells/decidim/author_cell.rb,
app/cells/decidim/badges_cell.rb,
app/cells/decidim/button_cell.rb,
app/cells/decidim/card_g_cell.rb,
app/cells/decidim/card_l_cell.rb,
app/cells/decidim/card_s_cell.rb,
app/cells/decidim/member_cell.rb,
app/forms/decidim/follow_form.rb,
app/forms/decidim/report_form.rb,
app/models/decidim/action_log.rb,
app/models/decidim/attachment.rb,
app/models/decidim/moderation.rb,
app/models/decidim/newsletter.rb,
app/models/decidim/scope_type.rb,
app/models/decidim/short_link.rb,
app/models/decidim/user_block.rb,
lib/decidim/attributes/object.rb,
lib/decidim/attributes/symbol.rb,
lib/decidim/content_processor.rb,
lib/decidim/content_renderers.rb,
lib/decidim/events/base_event.rb,
lib/decidim/has_conversations.rb,
lib/decidim/manifest_messages.rb,
lib/decidim/manifest_registry.rb,
lib/decidim/map/provider/here.rb,
lib/decidim/mutation_registry.rb,
lib/decidim/reminder_manifest.rb,
lib/decidim/reminder_registry.rb,
lib/decidim/resource_manifest.rb,
lib/decidim/scopable_resource.rb,
lib/decidim/settings_manifest.rb,
lib/decidim/workflow_registry.rb,
app/cells/decidim/address_cell.rb,
app/cells/decidim/profile_cell.rb,
app/cells/decidim/version_cell.rb,
app/forms/decidim/account_form.rb,
app/helpers/decidim/map_helper.rb,
app/helpers/decidim/pad_helper.rb,
app/jobs/decidim/open_data_job.rb,
app/models/decidim/share_token.rb,
app/models/decidim/static_page.rb,
app/models/decidim/user_report.rb,
app/services/decidim/tokenizer.rb,
lib/decidim/attributes/integer.rb,
lib/decidim/component_manifest.rb,
lib/decidim/controller_helpers.rb,
lib/decidim/download_your_data.rb,
lib/decidim/events/email_event.rb,
lib/decidim/exporters/exporter.rb,
lib/decidim/gamification/badge.rb,
lib/decidim/scopable_component.rb,
lib/decidim/shakapacker/runner.rb,
app/cells/decidim/activity_cell.rb,
app/cells/decidim/tos_page_cell.rb,
app/forms/decidim/password_form.rb,
app/helpers/decidim/card_helper.rb,
app/helpers/decidim/icon_helper.rb,
app/helpers/decidim/menu_helper.rb,
app/models/decidim/coauthorship.rb,
app/models/decidim/editor_image.rb,
app/models/decidim/notification.rb,
app/models/decidim/organization.rb,
lib/decidim/api/types/user_type.rb,
lib/decidim/api_response_helper.rb,
lib/decidim/attribute_encryptor.rb,
lib/decidim/commands/hook_error.rb,
lib/decidim/dependency_resolver.rb,
lib/decidim/events/author_event.rb,
lib/decidim/events/simple_event.rb,
lib/decidim/filter_form_builder.rb,
lib/decidim/filterable_resource.rb,
lib/decidim/legacy_form_builder.rb,
lib/decidim/url_option_resolver.rb,
app/cells/decidim/followers_cell.rb,
app/cells/decidim/following_cell.rb,
app/cells/decidim/nav_links_cell.rb,
app/cells/decidim/statistic_cell.rb,
app/commands/decidim/invite_user.rb,
app/forms/decidim/amendable/form.rb,
app/helpers/decidim/cache_helper.rb,
app/helpers/decidim/cells_helper.rb,
app/helpers/decidim/modal_helper.rb,
app/jobs/decidim/application_job.rb,
app/models/decidim/authorization.rb,
app/models/decidim/content_block.rb,
app/models/decidim/resource_link.rb,
lib/decidim/action_authorization.rb,
lib/decidim/asset_router/storage.rb,
lib/decidim/attributes/rich_text.rb,
lib/decidim/newsletter_encryptor.rb,
lib/decidim/permissions_registry.rb,
lib/decidim/shareable_with_token.rb,
app/cells/decidim/activities_cell.rb,
app/cells/decidim/date_range_cell.rb,
app/cells/decidim/like_block_cell.rb,
app/cells/decidim/pad_iframe_cell.rb,
app/cells/decidim/statistics_cell.rb,
app/cells/decidim/tab_panels_cell.rb,
app/forms/decidim/attachment_form.rb,
app/helpers/decidim/layout_helper.rb,
app/helpers/decidim/mailer_helper.rb,
app/helpers/decidim/markup_helper.rb,
app/helpers/decidim/orders_helper.rb,
app/mailers/decidim/export_mailer.rb,
app/models/decidim/categorization.rb,
app/models/decidim/private_export.rb,
app/models/decidim/taxonomization.rb,
app/queries/decidim/last_activity.rb,
app/services/decidim/traceability.rb,
lib/decidim/api/scalars/date_type.rb,
lib/decidim/asset_router/pipeline.rb,
lib/decidim/attachment_attributes.rb,
lib/decidim/attribute_object/form.rb,
lib/decidim/events/coauthor_event.rb,
lib/decidim/exporters/export_data.rb,
lib/decidim/has_taxonomy_settings.rb,
lib/decidim/oauth/token_generator.rb,
lib/decidim/organization_settings.rb,
lib/decidim/pdf_signature_example.rb,
lib/decidim/translatable_resource.rb,
app/cells/decidim/likers_list_cell.rb,
app/cells/decidim/photos_list_cell.rb,
app/commands/decidim/create_follow.rb,
app/commands/decidim/create_report.rb,
app/commands/decidim/delete_follow.rb,
app/commands/decidim/like_resource.rb,
app/forms/decidim/invite_user_form.rb,
app/helpers/decidim/account_helper.rb,
app/helpers/decidim/filters_helper.rb,
app/helpers/decidim/qr_code_helper.rb,
app/models/decidim/reminder_record.rb,
app/models/decidim/taxonomy_filter.rb,
app/models/decidim/user_moderation.rb,
app/queries/decidim/own_activities.rb,
app/services/decidim/action_logger.rb,
lib/decidim/admin_filters_registry.rb,
lib/decidim/api/types/decidim_type.rb,
lib/decidim/api/types/session_type.rb,
lib/decidim/attribute_object/model.rb,
lib/decidim/content_block_manifest.rb,
lib/decidim/content_block_registry.rb,
lib/decidim/fingerprint_calculator.rb,
lib/decidim/has_upload_validations.rb,
lib/decidim/locale_router_detector.rb,
lib/decidim/newsletter_participant.rb,
lib/decidim/processes_file_locally.rb,
app/cells/decidim/announcement_cell.rb,
app/cells/decidim/data_consent_cell.rb,
app/cells/decidim/images_panel_cell.rb,
app/cells/decidim/like_buttons_cell.rb,
app/cells/decidim/notification_cell.rb,
app/cells/decidim/progress_bar_cell.rb,
app/cells/decidim/share_button_cell.rb,
app/cells/decidim/share_widget_cell.rb,
app/cells/decidim/upload_modal_cell.rb,
app/cells/decidim/user_profile_cell.rb,
app/commands/decidim/update_account.rb,
app/forms/decidim/editor_image_form.rb,
app/forms/decidim/registration_form.rb,
app/helpers/decidim/likeable_helper.rb,
app/helpers/decidim/omniauth_helper.rb,
app/helpers/decidim/paginate_helper.rb,
app/helpers/decidim/sanitize_helper.rb,
app/helpers/decidim/searches_helper.rb,
app/mailers/decidim/reported_mailer.rb,
app/models/decidim/user_base_entity.rb,
app/permissions/decidim/permissions.rb,
app/services/decidim/events_manager.rb,
lib/decidim/api/types/area_api_type.rb,
lib/decidim/api/types/category_type.rb,
lib/decidim/api/types/taxonomy_type.rb,
lib/decidim/attributes/clean_string.rb,
lib/decidim/content_security_policy.rb,
lib/decidim/gamification/base_event.rb,
lib/decidim/has_resource_permission.rb,
lib/decidim/private_download_helper.rb,
lib/decidim/routes/locale_redirects.rb,
lib/decidim/translatable_attributes.rb,
app/cells/decidim/card_metadata_cell.rb,
app/cells/decidim/coauthorships_cell.rb,
app/cells/decidim/follow_button_cell.rb,
app/cells/decidim/footer_topics_cell.rb,
app/cells/decidim/notifications_cell.rb,
app/cells/decidim/report_button_cell.rb,
app/cells/decidim/user_activity_cell.rb,
app/cells/decidim/user_timeline_cell.rb,
app/cells/decidim/versions_list_cell.rb,
app/commands/decidim/destroy_account.rb,
app/commands/decidim/gallery_methods.rb,
app/commands/decidim/unlike_resource.rb,
app/commands/decidim/update_password.rb,
app/commands/decidim/validate_upload.rb,
app/helpers/decidim/meta_tags_helper.rb,
app/helpers/decidim/passwords_helper.rb,
app/jobs/decidim/event_publisher_job.rb,
app/models/decidim/impersonation_log.rb,
app/models/decidim/messaging/message.rb,
app/models/decidim/messaging/receipt.rb,
app/models/decidim/oauth_application.rb,
app/models/decidim/omniauth_provider.rb,
app/models/decidim/permission_action.rb,
app/models/decidim/reminder_delivery.rb,
app/models/decidim/static_page_topic.rb,
app/presenters/decidim/nil_presenter.rb,
app/queries/decidim/authorized_users.rb,
app/services/decidim/engine_resolver.rb,
app/services/decidim/html_truncation.rb,
app/services/decidim/iframe_disabler.rb,
app/services/decidim/resource_search.rb,
app/services/decidim/settings_change.rb,
app/uploaders/decidim/image_uploader.rb,
lib/decidim/api/types/amendment_type.rb,
lib/decidim/api/types/area_type_type.rb,
lib/decidim/api/types/component_type.rb,
lib/decidim/api/types/scope_api_type.rb,
lib/decidim/api/types/statistic_type.rb,
lib/decidim/assets/tailwind/instance.rb,
lib/decidim/commands/create_resource.rb,
lib/decidim/commands/update_resource.rb,
lib/decidim/file_validator_humanizer.rb,
lib/decidim/participatory_space_user.rb,
lib/decidim/upgrade/wysiwyg_migrator.rb,
app/cells/decidim/search_results_cell.rb,
app/cells/decidim/version_author_cell.rb,
app/commands/decidim/amendable/accept.rb,
app/commands/decidim/amendable/reject.rb,
app/controllers/decidim/qr_controller.rb,
app/forms/decidim/amendable/edit_form.rb,
app/forms/decidim/delete_account_form.rb,
app/forms/decidim/ephemeral_user_form.rb,
app/helpers/decidim/amendments_helper.rb,
app/helpers/decidim/animations_helper.rb,
app/helpers/decidim/breadcrumb_helper.rb,
app/helpers/decidim/date_range_helper.rb,
app/helpers/decidim/followable_helper.rb,
app/helpers/decidim/short_link_helper.rb,
app/helpers/decidim/taxonomies_helper.rb,
app/helpers/decidim/view_hooks_helper.rb,
app/mailers/decidim/block_user_mailer.rb,
app/mailers/decidim/newsletter_mailer.rb,
app/mailers/decidim/user_group_mailer.rb,
app/models/decidim/application_record.rb,
app/presenters/decidim/area_presenter.rb,
app/presenters/decidim/menu_presenter.rb,
app/presenters/decidim/user_presenter.rb,
app/queries/decidim/public_activities.rb,
app/queries/decidim/public_components.rb,
app/queries/decidim/stats_users_count.rb,
app/uploaders/decidim/avatar_uploader.rb,
lib/decidim/api/types/attachment_type.rb,
lib/decidim/api/types/moderation_type.rb,
lib/decidim/api/types/reportable_type.rb,
lib/decidim/attribute_object/type_map.rb,
lib/decidim/attributes/localized_date.rb,
lib/decidim/attributes/time_with_zone.rb,
lib/decidim/commands/destroy_resource.rb,
lib/decidim/commands/resource_handler.rb,
lib/decidim/commands/restore_resource.rb,
lib/decidim/events/notification_event.rb,
lib/decidim/exporters/export_manifest.rb,
lib/decidim/gamification/badge_scorer.rb,
lib/decidim/gamification/badge_status.rb,
lib/decidim/importers/import_manifest.rb,
lib/decidim/maintenance/import_models.rb,
lib/decidim/maintenance/taxonomy_plan.rb,
lib/decidim/shakapacker/configuration.rb,
app/cells/decidim/comments_button_cell.rb,
app/cells/decidim/documents_panel_cell.rb,
app/cells/decidim/profile_actions_cell.rb,
app/cells/decidim/translation_bar_cell.rb,
app/commands/decidim/amendable/promote.rb,
app/commands/decidim/invite_user_again.rb,
app/controllers/decidim/tos_controller.rb,
app/helpers/decidim/application_helper.rb,
app/helpers/decidim/attachments_helper.rb,
app/helpers/decidim/newsletters_helper.rb,
app/mailers/decidim/application_mailer.rb,
app/mailers/decidim/user_report_mailer.rb,
app/mailers/decidim/user_update_mailer.rb,
app/models/decidim/resource_permission.rb,
app/models/decidim/searchable_resource.rb,
app/presenters/decidim/stats_presenter.rb,
app/services/decidim/action_authorizer.rb,
lib/decidim/api/scalars/date_time_type.rb,
lib/decidim/api/types/badge_score_type.rb,
lib/decidim/api/types/coordinates_type.rb,
lib/decidim/api/types/fingerprint_type.rb,
lib/decidim/api/types/static_page_type.rb,
lib/decidim/authorization_form_builder.rb,
lib/decidim/content_parsers/tag_parser.rb,
lib/decidim/has_attachment_collections.rb,
lib/decidim/map/provider/geocoding/osm.rb,
app/cells/decidim/reported_content_cell.rb,
app/cells/decidim/resource_history_cell.rb,
app/cells/decidim/wizard_step_form_cell.rb,
app/commands/decidim/amendable/withdraw.rb,
app/commands/decidim/attachment_methods.rb,
app/commands/decidim/create_user_report.rb,
app/events/decidim/resource_liked_event.rb,
app/forms/decidim/amendable/create_form.rb,
app/forms/decidim/amendable/reject_form.rb,
app/forms/decidim/amendable/review_form.rb,
app/helpers/decidim/decidim_form_helper.rb,
app/helpers/decidim/organization_helper.rb,
app/helpers/decidim/traceability_helper.rb,
app/helpers/decidim/translations_helper.rb,
app/helpers/decidim/user_profile_helper.rb,
app/jobs/decidim/reminder_generator_job.rb,
app/mailers/decidim/notification_mailer.rb,
app/models/decidim/taxonomy_filter_item.rb,
app/services/decidim/base_diff_renderer.rb,
app/services/decidim/onboarding_manager.rb,
app/services/decidim/open_data_exporter.rb,
lib/decidim/action_authorization_helper.rb,
lib/decidim/api/functions/category_list.rb,
lib/decidim/api/types/organization_type.rb,
lib/decidim/content_parsers/base_parser.rb,
lib/decidim/content_parsers/blob_parser.rb,
lib/decidim/content_parsers/link_parser.rb,
lib/decidim/content_parsers/user_parser.rb,
lib/decidim/gamification/badge_registry.rb,
lib/decidim/gamification/level_up_event.rb,
lib/decidim/map/provider/geocoding/here.rb,
lib/decidim/map/provider/static_map/osm.rb,
app/cells/decidim/navbar_admin_link_cell.rb,
app/cells/decidim/profile_member_of_cell.rb,
app/cells/decidim/share_text_widget_cell.rb,
app/commands/decidim/create_editor_image.rb,
app/commands/decidim/create_registration.rb,
app/controllers/decidim/likes_controller.rb,
app/controllers/decidim/links_controller.rb,
app/controllers/decidim/pages_controller.rb,
app/events/decidim/change_nickname_event.rb,
app/events/decidim/profile_updated_event.rb,
app/forms/decidim/amendable/promote_form.rb,
app/forms/decidim/amendable/publish_form.rb,
app/forms/decidim/messaging/message_form.rb,
app/forms/decidim/upload_validation_form.rb,
app/jobs/decidim/migrate/paper_trail_job.rb,
app/models/decidim/attachment_collection.rb,
app/queries/decidim/inactive_users_query.rb,
lib/decidim/api/functions/component_list.rb,
lib/decidim/api/types/trace_version_type.rb,
lib/decidim/map/provider/dynamic_map/osm.rb,
lib/decidim/map/provider/static_map/here.rb,
lib/decidim/middleware/static_dispatcher.rb,
lib/decidim/participatory_space_manifest.rb,
lib/decidim/scopable_participatory_space.rb,
app/cells/decidim/report_user_button_cell.rb,
app/cells/decidim/versions_list_item_cell.rb,
app/commands/decidim/unsubscribe_settings.rb,
app/constraints/decidim/current_component.rb,
app/controllers/concerns/decidim/settings.rb,
app/controllers/decidim/errors_controller.rb,
app/helpers/decidim/active_link_to_helper.rb,
app/helpers/decidim/cells_paginate_helper.rb,
app/helpers/decidim/component_path_helper.rb,
app/jobs/decidim/hide_child_resources_job.rb,
app/mailers/decidim/decidim_devise_mailer.rb,
app/models/decidim/authorization_transfer.rb,
app/models/decidim/messaging/conversation.rb,
app/presenters/decidim/category_presenter.rb,
app/presenters/decidim/log/base_presenter.rb,
app/presenters/decidim/log/diff_presenter.rb,
app/presenters/decidim/log/user_presenter.rb,
app/presenters/decidim/resource_presenter.rb,
app/presenters/decidim/taxonomy_presenter.rb,
app/queries/decidim/stats_followers_count.rb,
app/scrubbers/decidim/newsletter_scrubber.rb,
app/scrubbers/decidim/user_input_scrubber.rb,
app/services/decidim/static_map_generator.rb,
app/uploaders/decidim/attachment_uploader.rb,
app/uploaders/decidim/hero_image_uploader.rb,
lib/decidim/attributes/integer_with_units.rb,
lib/decidim/commands/soft_delete_resource.rb,
lib/decidim/maintenance/taxonomy_importer.rb,
lib/decidim/map/provider/autocomplete/osm.rb,
lib/decidim/map/provider/dynamic_map/here.rb,
lib/decidim/notification_setting_manifest.rb,
lib/decidim/search_resource_fields_mapper.rb,
lib/decidim/social_share_service_manifest.rb,
app/cells/decidim/authorization_modal_cell.rb,
app/cells/decidim/collapsible_authors_cell.rb,
app/cells/decidim/content_blocks/base_cell.rb,
app/cells/decidim/content_blocks/hero_cell.rb,
app/cells/decidim/content_blocks/html_cell.rb,
app/commands/decidim/create_ephemeral_user.rb,
app/controllers/concerns/decidim/flaggable.rb,
app/controllers/concerns/decidim/orderable.rb,
app/controllers/concerns/decidim/paginable.rb,
app/controllers/decidim/account_controller.rb,
app/controllers/decidim/favicon_controller.rb,
app/controllers/decidim/follows_controller.rb,
app/controllers/decidim/locales_controller.rb,
app/controllers/decidim/offline_controller.rb,
app/controllers/decidim/reports_controller.rb,
app/helpers/decidim/contextual_help_helper.rb,
app/helpers/decidim/datalist_select_helper.rb,
app/helpers/decidim/external_domain_helper.rb,
app/helpers/decidim/replace_buttons_helper.rb,
app/jobs/decidim/remove_search_indexes_job.rb,
app/jobs/decidim/update_search_indexes_job.rb,
app/models/decidim/contextual_help_section.rb,
app/models/decidim/messaging/participation.rb,
app/presenters/decidim/area_type_presenter.rb,
app/presenters/decidim/log/space_presenter.rb,
app/presenters/decidim/menu_item_presenter.rb,
app/scrubbers/decidim/admin_input_scrubber.rb,
app/serializers/decidim/importers/importer.rb,
app/uploaders/decidim/application_uploader.rb,
lib/decidim/api/functions/user_entity_list.rb,
lib/decidim/api/types/reportable_user_type.rb,
lib/decidim/api/types/user_moderation_type.rb,
lib/decidim/attribute_object/type_resolver.rb,
lib/decidim/content_parsers/newline_parser.rb,
lib/decidim/download_your_data_serializers.rb,
lib/decidim/maintenance/import_models/area.rb,
lib/decidim/map/provider/autocomplete/here.rb,
app/cells/decidim/attachments_file_tab_cell.rb,
app/cells/decidim/attachments_link_tab_cell.rb,
app/cells/decidim/content_blocks/stats_cell.rb,
app/cells/decidim/linked_resources_for_cell.rb,
app/cells/decidim/public_participation_cell.rb,
app/commands/decidim/amendable/create_draft.rb,
app/commands/decidim/amendable/update_draft.rb,
app/commands/decidim/destroy_ephemeral_user.rb,
app/controllers/decidim/homepage_controller.rb,
app/controllers/decidim/profiles_controller.rb,
app/controllers/decidim/searches_controller.rb,
app/controllers/decidim/timeouts_controller.rb,
app/helpers/decidim/check_boxes_tree_helper.rb,
app/helpers/decidim/language_chooser_helper.rb,
app/helpers/decidim/rich_text_editor_helper.rb,
app/jobs/decidim/notification_generator_job.rb,
app/models/decidim/content_block_attachment.rb,
app/models/decidim/gamification/badge_score.rb,
app/models/decidim/participatory_space_link.rb,
app/permissions/decidim/default_permissions.rb,
app/presenters/decidim/attachment_presenter.rb,
app/presenters/decidim/home_stats_presenter.rb,
app/services/decidim/content_blocks_creator.rb,
app/services/decidim/notification_generator.rb,
app/services/decidim/send_push_notification.rb,
app/uploaders/decidim/banner_image_uploader.rb,
app/uploaders/decidim/editor_image_uploader.rb,
app/uploaders/decidim/record_image_uploader.rb,
lib/decidim/api/input_sorts/base_input_sort.rb,
lib/decidim/api/interfaces/author_interface.rb,
lib/decidim/api/types/localized_string_type.rb,
lib/decidim/api/types/translated_field_type.rb,
lib/decidim/content_parsers/resource_parser.rb,
lib/decidim/content_renderers/base_renderer.rb,
lib/decidim/content_renderers/blob_renderer.rb,
lib/decidim/content_renderers/link_renderer.rb,
lib/decidim/content_renderers/user_renderer.rb,
lib/decidim/events/machine_translated_event.rb,
lib/decidim/gamification/badge_earned_event.rb,
lib/decidim/maintenance/import_models/scope.rb,
lib/decidim/middleware/current_organization.rb,
lib/decidim/participatory_space/has_members.rb,
app/cells/decidim/resource_types_filter_cell.rb,
app/commands/decidim/amendable/destroy_draft.rb,
app/commands/decidim/amendable/publish_draft.rb,
app/controllers/decidim/manifests_controller.rb,
app/controllers/decidim/open_data_controller.rb,
app/forms/decidim/omniauth_registration_form.rb,
app/helpers/decidim/humanize_booleans_helper.rb,
app/helpers/decidim/localized_locales_helper.rb,
app/helpers/decidim/onboarding_action_helper.rb,
app/helpers/decidim/resource_versions_helper.rb,
app/models/decidim/push_notification_message.rb,
app/presenters/decidim/footer_menu_presenter.rb,
app/presenters/decidim/inline_menu_presenter.rb,
app/queries/decidim/stats_participants_count.rb,
app/serializers/decidim/exporters/serializer.rb,
app/services/decidim/log_reference_generator.rb,
lib/decidim/api/functions/user_entity_finder.rb,
lib/decidim/api/types/static_page_topic_type.rb,
lib/decidim/participatory_space_resourceable.rb,
app/cells/decidim/search_results_section_cell.rb,
app/controllers/concerns/decidim/payload_info.rb,
app/controllers/concerns/decidim/user_profile.rb,
app/controllers/concerns/decidim/withdrawable.rb,
app/controllers/decidim/amendments_controller.rb,
app/controllers/decidim/static_map_controller.rb,
app/events/decidim/soft_delete_resource_event.rb,
app/events/decidim/welcome_notification_event.rb,
app/forms/decidim/messaging/conversation_form.rb,
app/forms/decidim/notifications_settings_form.rb,
app/helpers/decidim/authorization_form_helper.rb,
app/helpers/decidim/resource_reference_helper.rb,
app/jobs/decidim/machine_translation_save_job.rb,
app/mailers/concerns/decidim/localised_mailer.rb,
app/mailers/decidim/newsletters_opt_in_mailer.rb,
app/models/decidim/participatory_space/member.rb,
app/presenters/decidim/log/resource_presenter.rb,
app/presenters/decidim/notification_presenter.rb,
app/presenters/decidim/organization_presenter.rb,
app/resolvers/decidim/meta_image_url_resolver.rb,
app/uploaders/decidim/homepage_image_uploader.rb,
lib/decidim/api/functions/component_list_base.rb,
lib/decidim/api/interfaces/likeable_interface.rb,
lib/decidim/api/interfaces/scopable_interface.rb,
lib/decidim/attribute_object/nested_validator.rb,
lib/decidim/middleware/strip_x_forwarded_host.rb,
app/cells/decidim/content_blocks/sub_hero_cell.rb,
app/controllers/concerns/decidim/direct_upload.rb,
app/controllers/concerns/decidim/safe_redirect.rb,
app/controllers/decidim/application_controller.rb,
app/controllers/decidim/geolocation_controller.rb,
app/controllers/decidim/newsletters_controller.rb,
app/controllers/decidim/short_links_controller.rb,
app/helpers/concerns/decidim/user_role_checker.rb,
app/helpers/decidim/social_share_button_helper.rb,
app/jobs/decidim/download_your_data_export_job.rb,
lib/decidim/api/interfaces/amendable_interface.rb,
lib/decidim/api/interfaces/component_interface.rb,
lib/decidim/api/interfaces/referable_interface.rb,
lib/decidim/api/interfaces/traceable_interface.rb,
lib/decidim/api/types/participant_details_type.rb,
lib/decidim/api/types/participatory_space_type.rb,
lib/decidim/maintenance/import_models/category.rb,
app/controllers/concerns/decidim/needs_snippets.rb,
app/controllers/decidim/report_users_controller.rb,
app/helpers/decidim/participatory_space_helpers.rb,
app/jobs/decidim/export_participatory_space_job.rb,
app/jobs/decidim/hide_all_created_by_author_job.rb,
app/jobs/decidim/machine_translation_fields_job.rb,
app/mailers/decidim/notifications_digest_mailer.rb,
app/mailers/decidim/participants_account_mailer.rb,
app/permissions/decidim/report_user_permissions.rb,
app/presenters/decidim/admin_log/area_presenter.rb,
app/presenters/decidim/admin_log/user_presenter.rb,
app/uploaders/decidim/background_image_uploader.rb,
lib/decidim/api/functions/component_finder_base.rb,
lib/decidim/api/input_filters/base_input_filter.rb,
lib/decidim/api/interfaces/attachable_interface.rb,
lib/decidim/api/interfaces/authorable_interface.rb,
lib/decidim/api/interfaces/followable_interface.rb,
lib/decidim/api/interfaces/timestamps_interface.rb,
lib/decidim/content_renderers/resource_renderer.rb,
lib/decidim/maintenance/import_models/area_type.rb,
app/cells/decidim/newsletter_templates/base_cell.rb,
app/cells/decidim/notification_actions/base_cell.rb,
app/cells/decidim/onboarding_action_message_cell.rb,
app/commands/decidim/update_resources_taxonomies.rb,
app/controllers/concerns/decidim/filter_resource.rb,
app/controllers/concerns/decidim/has_stored_path.rb,
app/controllers/concerns/decidim/html_safe_flash.rb,
app/controllers/concerns/decidim/locale_switcher.rb,
app/controllers/decidim/editor_images_controller.rb,
app/controllers/decidim/notifications_controller.rb,
app/helpers/decidim/aria_selected_link_to_helper.rb,
app/jobs/decidim/find_and_update_descendants_job.rb,
app/models/decidim/authorization_transfer_record.rb,
app/permissions/decidim/user_manager_permissions.rb,
app/presenters/decidim/admin_log/scope_presenter.rb,
app/presenters/decidim/official_author_presenter.rb,
app/presenters/decidim/taxonomy_filter_presenter.rb,
app/queries/decidim/messaging/user_conversations.rb,
app/services/decidim/download_your_data_exporter.rb,
app/uploaders/decidim/organization_logo_uploader.rb,
lib/decidim/api/input_sorts/component_input_sort.rb,
lib/decidim/api/interfaces/fingerprint_interface.rb,
lib/decidim/api/interfaces/localizable_interface.rb,
lib/decidim/api/types/attachment_collection_type.rb,
lib/decidim/content_parsers/inline_images_parser.rb,
lib/decidim/core/content_blocks/registry_manager.rb,
lib/decidim/participatory_space_context_manifest.rb,
app/cells/decidim/amendable/wizard_step_form_cell.rb,
app/commands/decidim/create_omniauth_registration.rb,
app/commands/decidim/messaging/start_conversation.rb,
app/commands/decidim/multiple_attachments_methods.rb,
app/controllers/concerns/decidim/needs_permission.rb,
app/controllers/concerns/decidim/skip_timeoutable.rb,
app/controllers/decidim/devise/unlocks_controller.rb,
app/helpers/decidim/messaging/conversation_helper.rb,
app/helpers/decidim/notifications_settings_helper.rb,
app/jobs/decidim/delete_inactive_participants_job.rb,
app/jobs/decidim/email_notification_generator_job.rb,
app/jobs/decidim/machine_translation_resource_job.rb,
app/jobs/decidim/process_inactive_participant_job.rb,
app/mailers/decidim/messaging/conversation_mailer.rb,
app/presenters/decidim/resource_locator_presenter.rb,
app/services/decidim/email_notification_generator.rb,
lib/decidim/api/functions/needs_api_default_order.rb,
lib/decidim/api/interfaces/coauthorable_interface.rb,
lib/decidim/content_blocks/has_related_components.rb,
app/cells/decidim/amendable/amend_button_card_cell.rb,
app/commands/decidim/attachment_attributes_methods.rb,
app/commands/decidim/update_notifications_settings.rb,
app/controllers/concerns/decidim/impersonate_users.rb,
app/controllers/decidim/components/base_controller.rb,
app/controllers/decidim/devise/sessions_controller.rb,
app/controllers/decidim/last_activities_controller.rb,
app/controllers/decidim/user_activities_controller.rb,
app/presenters/decidim/push_notification_presenter.rb,
app/presenters/decidim/validation_errors_presenter.rb,
app/services/decidim/log/diff_changeset_calculator.rb,
lib/decidim/api/input_sorts/user_entity_input_sort.rb,
lib/decidim/api/interfaces/categorizable_interface.rb,
lib/decidim/api/interfaces/taxonomizable_interface.rb,
app/cells/decidim/content_blocks/last_activity_cell.rb,
app/cells/decidim/notification_actions/buttons_cell.rb,
app/controllers/concerns/decidim/devise_controllers.rb,
app/controllers/concerns/decidim/needs_organization.rb,
app/controllers/concerns/decidim/needs_tos_accepted.rb,
app/controllers/decidim/devise/passwords_controller.rb,
app/mailers/concerns/decidim/multitenant_asset_host.rb,
app/presenters/decidim/admin_log/category_presenter.rb,
app/presenters/decidim/admin_log/taxonomy_presenter.rb,
app/uploaders/decidim/organization_favicon_uploader.rb,
lib/decidim/api/input_filters/category_input_filter.rb,
lib/decidim/api/input_sorts/has_likeable_input_sort.rb,
lib/decidim/api/types/participatory_space_link_type.rb,
lib/decidim/content_parsers/mention_resource_parser.rb,
app/cells/decidim/amendable/promote_button_card_cell.rb,
app/commands/decidim/messaging/reply_to_conversation.rb,
app/controllers/concerns/decidim/needs_rtl_direction.rb,
app/controllers/decidim/doorkeeper/tokens_controller.rb,
app/helpers/concerns/decidim/flash_helper_extensions.rb,
app/presenters/decidim/admin_log/area_type_presenter.rb,
app/presenters/decidim/admin_log/base_user_presenter.rb,
app/presenters/decidim/admin_log/component_presenter.rb,
app/uploaders/decidim/official_image_footer_uploader.rb,
lib/decidim/api/functions/needs_api_filter_and_order.rb,
lib/decidim/api/input_filters/component_input_filter.rb,
lib/decidim/api/input_sorts/has_localized_input_sort.rb,
lib/decidim/api/input_sorts/has_timestamp_input_sort.rb,
lib/decidim/maintenance/import_models/categorization.rb,
app/cells/decidim/content_blocks/footer_sub_hero_cell.rb,
app/commands/decidim/resend_confirmation_instructions.rb,
app/controllers/concerns/decidim/force_authentication.rb,
app/controllers/concerns/decidim/user_blocked_checker.rb,
app/controllers/decidim/devise/invitations_controller.rb,
app/controllers/decidim/download_your_data_controller.rb,
app/controllers/decidim/newsletters_opt_in_controller.rb,
app/controllers/decidim/upload_validations_controller.rb,
app/jobs/decidim/resend_confirmation_instructions_job.rb,
app/presenters/decidim/admin_log/attachment_presenter.rb,
app/presenters/decidim/admin_log/moderation_presenter.rb,
app/presenters/decidim/admin_log/newsletter_presenter.rb,
app/presenters/decidim/admin_log/scope_type_presenter.rb,
app/presenters/decidim/breadcrumb_root_menu_presenter.rb,
app/presenters/decidim/log/value_types/area_presenter.rb,
app/presenters/decidim/log/value_types/date_presenter.rb,
app/presenters/decidim/notifications_digest_presenter.rb,
app/queries/decidim/participatory_space_last_activity.rb,
app/services/decidim/push_notification_message_sender.rb,
app/uploaders/decidim/oauth_application_logo_uploader.rb,
lib/decidim/api/interfaces/amendable_entity_interface.rb,
app/controllers/concerns/decidim/needs_password_change.rb,
app/controllers/concerns/decidim/registers_permissions.rb,
app/controllers/decidim/gamification/badges_controller.rb,
app/presenters/decidim/admin_log/share_token_presenter.rb,
app/presenters/decidim/admin_log/static_page_presenter.rb,
app/presenters/decidim/log/value_types/scope_presenter.rb,
lib/decidim/api/input_filters/user_entity_input_filter.rb,
lib/decidim/api/input_sorts/has_publishable_input_sort.rb,
app/cells/decidim/content_blocks/cta_settings_form_cell.rb,
app/controllers/concerns/decidim/has_account_breadcrumb.rb,
app/controllers/concerns/decidim/has_profile_breadcrumb.rb,
app/controllers/decidim/authorization_modals_controller.rb,
app/controllers/decidim/devise/confirmations_controller.rb,
app/controllers/decidim/devise/registrations_controller.rb,
app/models/decidim/participatory_space_role_config/base.rb,
app/presenters/decidim/admin_log/organization_presenter.rb,
app/presenters/decidim/authorization_transfer_presenter.rb,
app/presenters/decidim/log/value_types/locale_presenter.rb,
app/presenters/decidim/notification_to_mailer_presenter.rb,
lib/decidim/api/functions/participatory_space_list_base.rb,
lib/decidim/api/types/participatory_space_manifest_type.rb,
lib/decidim/content_renderers/mention_resource_renderer.rb,
app/cells/decidim/content_blocks/hero_settings_form_cell.rb,
app/cells/decidim/content_blocks/how_to_participate_cell.rb,
app/cells/decidim/content_blocks/html_settings_form_cell.rb,
app/cells/decidim/highlighted_participatory_process_cell.rb,
app/controllers/concerns/decidim/ajax_permission_handler.rb,
app/controllers/concerns/decidim/has_specific_breadcrumb.rb,
app/controllers/decidim/doorkeeper/token_info_controller.rb,
app/controllers/decidim/resource_autocomplete_controller.rb,
app/models/decidim/participatory_space_role_config/admin.rb,
app/presenters/decidim/log/value_types/default_presenter.rb,
app/uploaders/decidim/newsletter_template_image_uploader.rb,
lib/decidim/api/input_filters/has_localized_input_filter.rb,
lib/decidim/api/input_filters/has_timestamp_input_filter.rb,
lib/decidim/api/interfaces/participatory_space_interface.rb,
lib/decidim/api/types/quantifiable_translated_field_type.rb,
lib/decidim/maintenance/import_models/application_record.rb,
app/cells/decidim/content_blocks/static_page/section_cell.rb,
app/cells/decidim/content_blocks/static_page/summary_cell.rb,
app/controllers/decidim/doorkeeper/credentials_controller.rb,
app/controllers/decidim/notifications_settings_controller.rb,
app/jobs/decidim/email_notifications_digest_generator_job.rb,
app/jobs/decidim/notification_generator_for_recipient_job.rb,
app/presenters/decidim/log/value_types/currency_presenter.rb,
app/presenters/decidim/log/value_types/taxonomy_presenter.rb,
app/services/decidim/notification_generator_for_recipient.rb,
app/services/decidim/notifications_digest_sending_decider.rb,
lib/decidim/api/functions/participatory_space_finder_base.rb,
lib/decidim/api/interfaces/categories_container_interface.rb,
app/cells/decidim/content_blocks/highlighted_elements_cell.rb,
app/cells/decidim/newsletter_templates/image_text_cta_cell.rb,
app/controllers/concerns/decidim/ephemeral_session_checker.rb,
app/controllers/concerns/decidim/linked_resource_reference.rb,
app/controllers/concerns/decidim/onboarding_action_methods.rb,
app/controllers/concerns/decidim/resource_versions_concern.rb,
app/controllers/decidim/messaging/conversations_controller.rb,
app/presenters/decidim/admin_log/taxonomy_filter_presenter.rb,
app/presenters/decidim/admin_log/user_moderation_presenter.rb,
app/presenters/decidim/breadcrumb_root_menu_item_presenter.rb,
app/presenters/decidim/log/value_types/area_type_presenter.rb,
app/queries/decidim/participatory_processes_with_user_role.rb,
app/services/decidim/notifications_subscriptions_persistor.rb,
lib/decidim/api/input_filters/has_publishable_input_filter.rb,
lib/decidim/api/input_sorts/participatory_space_input_sort.rb,
lib/decidim/api/interfaces/attachable_collection_interface.rb,
app/cells/decidim/newsletter_templates/basic_only_text_cell.rb,
app/controllers/concerns/decidim/use_organization_time_zone.rb,
app/presenters/decidim/log/value_types/percentage_presenter.rb,
app/presenters/decidim/log/value_types/scope_type_presenter.rb,
app/presenters/decidim/participatory_space/member_presenter.rb,
app/serializers/decidim/exporters/open_data_user_serializer.rb,
app/controllers/concerns/decidim/participatory_space_context.rb,
app/controllers/decidim/doorkeeper/authorizations_controller.rb,
app/models/decidim/participatory_space_role_config/evaluator.rb,
app/models/decidim/participatory_space_role_config/moderator.rb,
app/presenters/decidim/admin_log/impersonation_log_presenter.rb,
app/presenters/decidim/admin_log/oauth_application_presenter.rb,
app/presenters/decidim/log/value_types/access_mode_presenter.rb,
app/presenters/decidim/participatory_space_manifest_presenter.rb,
app/serializers/decidim/schema_org_breadcrumb_list_serializer.rb,
app/cells/decidim/content_blocks/participatory_space_hero_cell.rb,
app/cells/decidim/newsletter_templates/base_settings_form_cell.rb,
app/controllers/concerns/decidim/devise_authentication_methods.rb,
app/controllers/concerns/decidim/headers/http_caching_disabler.rb,
app/controllers/decidim/notifications_subscriptions_controller.rb,
app/models/decidim/participatory_space_role_config/null_object.rb,
app/presenters/decidim/admin_log/newsletter_resource_presenter.rb,
lib/decidim/api/input_filters/participatory_space_input_filter.rb,
app/cells/decidim/content_blocks/participatory_space_stats_cell.rb,
app/models/decidim/participatory_space_role_config/collaborator.rb,
app/presenters/decidim/admin_log/static_page_resource_presenter.rb,
app/serializers/decidim/exporters/open_data_taxonomy_serializer.rb,
app/cells/decidim/content_blocks/announcement_settings_form_cell.rb,
app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb,
app/cells/decidim/content_blocks/participatory_space_images_cell.rb,
app/controllers/concerns/decidim/headers/content_security_policy.rb,
app/controllers/decidim/devise/omniauth_registrations_controller.rb,
app/presenters/decidim/admin_log/attachment_collection_presenter.rb,
app/presenters/decidim/component_attachment_collection_presenter.rb,
app/serializers/decidim/exporters/participatory_space_serializer.rb,
app/cells/decidim/content_blocks/last_activity_settings_form_cell.rb,
app/serializers/decidim/exporters/open_data_moderation_serializer.rb,
app/cells/decidim/content_blocks/participatory_space_metadata_cell.rb,
app/cells/decidim/content_blocks/static_page/two_pane_section_cell.rb,
app/presenters/decidim/admin_log/contextual_help_section_presenter.rb,
app/cells/decidim/content_blocks/participatory_space_documents_cell.rb,
app/cells/decidim/content_blocks/participatory_space_main_data_cell.rb,
app/serializers/decidim/exporters/open_data_blocked_user_serializer.rb,
app/cells/decidim/content_blocks/participatory_space_extra_data_cell.rb,
app/controllers/concerns/decidim/headers/browser_feature_permissions.rb,
app/controllers/concerns/decidim/disable_redirection_to_external_host.rb,
app/controllers/concerns/decidim/participatory_space/has_members_page.rb,
app/controllers/decidim/free_resource_authorization_modals_controller.rb,
app/presenters/decidim/admin_log/oauth_application_resource_presenter.rb,
app/presenters/decidim/admin_log/participatory_space/member_presenter.rb,
lib/decidim/api/interfaces/participatory_space_resourceable_interface.rb,
app/cells/decidim/content_blocks/highlighted_participatory_spaces_cell.rb,
app/cells/decidim/content_blocks/participatory_space_announcement_cell.rb,
app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb,
app/cells/decidim/content_blocks/static_page/section_settings_form_cell.rb,
app/cells/decidim/content_blocks/static_page/summary_settings_form_cell.rb,
app/controllers/concerns/decidim/has_participatory_space_content_blocks.rb,
app/cells/decidim/content_blocks/highlighted_elements_settings_form_cell.rb,
app/cells/decidim/newsletter_templates/image_text_cta_settings_form_cell.rb,
app/cells/decidim/content_blocks/participatory_space_social_networks_cell.rb,
app/cells/decidim/newsletter_templates/basic_only_text_settings_form_cell.rb,
app/serializers/decidim/importers/participatory_space_components_importer.rb,
app/serializers/decidim/exporters/participatory_space_components_serializer.rb,
app/cells/decidim/content_blocks/participatory_space_hero_settings_form_cell.rb,
app/models/decidim/participatory_space_role_config/participatory_space_admin.rb,
app/cells/decidim/content_blocks/highlighted_elements_with_cell_for_list_cell.rb,
lib/decidim/download_your_data_serializers/download_your_data_user_serializer.rb,
app/cells/decidim/content_blocks/highlighted_content_banner_settings_form_cell.rb,
lib/decidim/download_your_data_serializers/download_your_data_follow_serializer.rb,
lib/decidim/download_your_data_serializers/download_your_data_member_serializer.rb,
lib/decidim/download_your_data_serializers/download_your_data_report_serializer.rb,
app/cells/decidim/content_blocks/static_page/two_pane_section_settings_form_cell.rb,
lib/decidim/download_your_data_serializers/download_your_data_identity_serializer.rb,
lib/decidim/download_your_data_serializers/download_your_data_conversation_serializer.rb,
lib/decidim/download_your_data_serializers/download_your_data_notification_serializer.rb,
app/cells/decidim/content_blocks/highlighted_elements_for_component_settings_form_cell.rb

Overview

Handle the locale redirects in the route files It tries to detect a place where the locale is being present, either as a GET parameter, or a session, or if there is nothing it will return the default locale of the organization.

Defined Under Namespace

Modules: AccountHelper, ActionAuthorization, ActionAuthorizationHelper, ActiveLinkToHelper, ActsAsAuthor, ActsAsTree, AdminLog, AjaxPermissionHandler, Amendable, AmendmentsHelper, AnimationsHelper, ApiResponseHelper, ApplicationHelper, AriaSelectedLinkToHelper, AssetRouter, Assets, AttachmentAttributes, AttachmentAttributesMethods, AttachmentMethods, AttachmentsHelper, AttributeObject, Attributes, Authorable, AuthorizationFormHelper, BreadcrumbHelper, CacheHelper, CardHelper, CellsHelper, CellsPaginateHelper, CheckBoxesTreeHelper, Coauthorable, Commands, ComponentPathHelper, Components, ContentBlocks, ContentParsers, ContentProcessor, ContentRenderers, ContextualHelpHelper, ControllerHelpers, Core, DatalistSelectHelper, DateRangeHelper, DecidimFormHelper, Deprecations, Devise, DeviseAuthenticationMethods, DeviseControllers, DiffyExtension, DirectUpload, DisableRedirectionToExternalHost, Doorkeeper, DownloadYourData, DownloadYourDataSerializers, EphemeralSessionChecker, Etherpad, Events, Exporters, ExternalDomainHelper, Faker, FilterResource, FilterableResource, FiltersHelper, Fingerprintable, Flaggable, FlashHelperExtensions, Followable, FollowableHelper, ForceAuthentication, FormFactory, FriendlyDates, GalleryMethods, Gamification, Geocodable, HasAccountBreadcrumb, HasArea, HasAttachmentCollections, HasAttachments, HasCategory, HasComponent, HasConversations, HasParticipatorySpaceContentBlocks, HasProfileBreadcrumb, HasReference, HasResourcePermission, HasSettings, HasSpecificBreadcrumb, HasStoredPath, HasTaxonomySettings, HasUploadValidations, HasWorkflows, Headers, HtmlSafeFlash, HumanizeBooleansHelper, IconHelper, ImpersonateUsers, Importers, IoEncoder, JsonbAttributes, LanguageChooserHelper, LayoutHelper, Likeable, LikeableHelper, LinkedResourceReference, LocaleSwitcher, LocalisedMailer, LocalizedLocalesHelper, Log, Loggable, MailerHelper, Maintenance, Map, MapHelper, MarkupHelper, MenuHelper, Messaging, MetaTagsHelper, Middleware, Migrate, ModalHelper, MultipleAttachmentsMethods, MultitenantAssetHost, NeedsOrganization, NeedsPasswordChange, NeedsPermission, NeedsRtlDirection, NeedsSnippets, NeedsTosAccepted, NewsletterParticipant, NewsletterTemplates, NewslettersHelper, Nicknamizable, NotificationActions, NotificationsSettingsHelper, OAuth, OmniauthHelper, OnboardingActionHelper, OnboardingActionMethods, Orderable, OrdersHelper, OrganizationHelper, PadHelper, Paddable, Paginable, PaginateHelper, Participable, ParticipatorySpace, ParticipatorySpaceContext, ParticipatorySpaceHelpers, ParticipatorySpaceResourceable, ParticipatorySpaceRoleConfig, ParticipatorySpaceUser, PasswordsHelper, PayloadInfo, PrivateDownloadHelper, ProcessesFileLocally, Publicable, QrCodeHelper, Randomable, RecordEncryptor, RegistersPermissions, ReplaceButtonsHelper, Reportable, ResourceHelper, ResourceReferenceHelper, ResourceVersionsConcern, ResourceVersionsHelper, Resourceable, RichTextEditorHelper, Routes, SafeRedirect, SanitizeHelper, Scopable, ScopableComponent, ScopableParticipatorySpace, ScopableResource, Searchable, SearchesHelper, Settings, Shakapacker, ShareableWithToken, ShortLinkHelper, SkipTimeoutable, SocialShareButtonHelper, SoftDeletable, SpringWatcher, TaxonomiesHelper, Taxonomizable, TooltipHelper, TraceabilityHelper, Traceable, TranslatableAttributes, TranslatableResource, TranslationsHelper, Upgrade, UseOrganizationTimeZone, UserBlockedChecker, UserProfile, UserProfileHelper, UserReportable, UserRoleChecker, ViewHooksHelper, Webpacker, Withdrawable Classes: AccountController, AccountForm, ActionAuthorizer, ActionLog, ActionLogger, ActivitiesCell, ActivityCell, AddressCell, AdminFilter, AdminFiltersRegistry, AdminInputScrubber, Amendment, AmendmentsController, AnnouncementCell, ApplicationController, ApplicationJob, ApplicationMailer, ApplicationRecord, ApplicationUploader, Area, AreaPresenter, AreaType, AreaTypePresenter, Attachment, AttachmentCollection, AttachmentForm, AttachmentPresenter, AttachmentUploader, AttachmentsFileTabCell, AttachmentsLinkTabCell, AttributeEncryptor, AuthorCell, Authorization, AuthorizationFormBuilder, AuthorizationModalCell, AuthorizationModalsController, AuthorizationTransfer, AuthorizationTransferPresenter, AuthorizationTransferRecord, AuthorizedUsers, AvatarUploader, BackgroundImageUploader, BadgeCell, BadgesCell, BannerImageUploader, BaseDiffRenderer, BlockRegistry, BlockUserMailer, BreadcrumbRootMenuItemPresenter, BreadcrumbRootMenuPresenter, ButtonCell, CardCell, CardGCell, CardLCell, CardMetadataCell, CardSCell, Categorization, Category, CategoryPresenter, ChangeNicknameEvent, Coauthorship, CoauthorshipsCell, CollapsibleAuthorsCell, Command, CommentsButtonCell, CommonPasswords, Component, ComponentAttachmentCollectionPresenter, ComponentManifest, ContentBlock, ContentBlockAttachment, ContentBlockManifest, ContentBlockRegistry, ContentBlocksCreator, ContentSecurityPolicy, ContextualHelpSection, CoreDataManifest, CreateEditorImage, CreateEphemeralUser, CreateFollow, CreateOmniauthRegistration, CreateRegistration, CreateReport, CreateUserReport, CurrentComponent, DataConsentCell, DateRangeCell, DecidimDeviseMailer, DefaultPermissions, DeleteAccountForm, DeleteFollow, DeleteInactiveParticipantsJob, DependencyResolver, DestroyAccount, DestroyEphemeralUser, DiffCell, DocumentsPanelCell, DownloadYourDataController, DownloadYourDataExportJob, DownloadYourDataExporter, EditorImage, EditorImageForm, EditorImageUploader, EditorImagesController, EmailNotificationGenerator, EmailNotificationGeneratorJob, EmailNotificationsDigestGeneratorJob, EngineResolver, EngineRouter, Env, EphemeralUserForm, ErrorsController, EventPublisherJob, EventRecorder, EventsManager, ExportJob, ExportMailer, ExportParticipatorySpaceJob, FaviconController, FileValidatorHumanizer, FileZipper, FilterFormBuilder, FindAndUpdateDescendantsJob, FingerprintCalculator, Follow, FollowButtonCell, FollowForm, FollowersCell, FollowingCell, FollowsController, FooterMenuPresenter, FooterTopicsCell, Form, FormBuilder, FreeResourceAuthorizationModalsController, GeolocationController, HeroImageUploader, HideAllCreatedByAuthorJob, HideChildResourcesJob, HighlightedParticipatoryProcessCell, HomeStatsPresenter, HomepageController, HomepageImageUploader, HtmlTruncation, IconRegistry, Identity, IframeDisabler, ImageUploader, ImagesPanelCell, ImpersonationLog, InactiveUsersQuery, InlineMenuPresenter, InvalidOauthSignature, InvalidUrlError, InviteUser, InviteUserAgain, InviteUserForm, LastActivitiesController, LastActivity, LegacyFormBuilder, Like, LikeBlockCell, LikeButtonsCell, LikeResource, LikersListCell, LikesController, LinkedResourcesForCell, LinksController, LocaleRouterDetector, LocalesController, LogReferenceGenerator, MachineTranslationFieldsJob, MachineTranslationResourceJob, MachineTranslationSaveJob, ManifestMessages, ManifestRegistry, ManifestsController, MapCell, MemberCell, Menu, MenuItem, MenuItemPresenter, MenuPresenter, MenuRegistry, MetaImageUrlResolver, Moderation, ModerationTools, MutationRegistry, NavLinksCell, NavbarAdminLinkCell, NeedTosAcceptance, Newsletter, NewsletterEncryptor, NewsletterMailer, NewsletterScrubber, NewsletterTemplateImageUploader, NewslettersController, NewslettersOptInController, NewslettersOptInMailer, NilPresenter, Notification, NotificationCell, NotificationGenerator, NotificationGeneratorForRecipient, NotificationGeneratorForRecipientJob, NotificationGeneratorJob, NotificationMailer, NotificationPresenter, NotificationSettingManifest, NotificationToMailerPresenter, NotificationsCell, NotificationsController, NotificationsDigestMailer, NotificationsDigestPresenter, NotificationsDigestSendingDecider, NotificationsSettingsController, NotificationsSettingsForm, NotificationsSubscriptionsController, NotificationsSubscriptionsPersistor, OAuthApplication, OAuthApplicationLogoUploader, OfficialAuthorPresenter, OfficialImageFooterUploader, OfflineController, OmniauthProvider, OmniauthRegistrationForm, OnboardingActionMessageCell, OnboardingManager, OpenDataController, OpenDataExporter, OpenDataJob, Organization, OrganizationFaviconUploader, OrganizationLogoUploader, OrganizationPresenter, OrganizationSettings, OwnActivities, PadIframeCell, PagesController, ParticipantsAccountMailer, ParticipatoryProcessesWithUserRole, ParticipatorySpaceContextManifest, ParticipatorySpaceLastActivity, ParticipatorySpaceLink, ParticipatorySpaceManifest, ParticipatorySpaceManifestPresenter, PasswordForm, PdfSignatureExample, PermissionAction, Permissions, PermissionsRegistry, PhotoCell, PhotosListCell, PrivateExport, ProcessInactiveParticipantJob, ProfileActionsCell, ProfileCell, ProfileMemberOfCell, ProfileUpdatedEvent, ProfilesController, ProgressBarCell, PublicActivities, PublicComponents, PublicParticipationCell, PushNotificationMessage, PushNotificationMessageSender, PushNotificationPresenter, QrController, Query, RecordImageUploader, RegistrationForm, Reminder, ReminderDelivery, ReminderGeneratorJob, ReminderManifest, ReminderRecord, ReminderRegistry, RemoveSearchIndexesJob, Report, ReportButtonCell, ReportForm, ReportUserButtonCell, ReportUserPermissions, ReportUsersController, ReportedContentCell, ReportedMailer, ReportsController, ResendConfirmationInstructions, ResendConfirmationInstructionsJob, ResourceAutocompleteController, ResourceHistoryCell, ResourceLikedEvent, ResourceLink, ResourceLocatorPresenter, ResourceManifest, ResourcePermission, ResourcePresenter, ResourceSearch, ResourceTypesFilterCell, SchemaOrgBreadcrumbListSerializer, Scope, ScopeType, Search, SearchResourceFieldsMapper, SearchResultsCell, SearchResultsSectionCell, SearchableResource, SearchesController, Seeds, SendPushNotification, SettingsChange, SettingsManifest, ShareButtonCell, ShareTextWidgetCell, ShareToken, ShareWidgetCell, ShortLink, ShortLinksController, Snippets, SocialShareServiceManifest, SoftDeleteResourceEvent, StaticMapController, StaticMapGenerator, StaticPage, StaticPageTopic, StatisticCell, StatisticsCell, StatsFollowersCount, StatsParticipantsCount, StatsPresenter, StatsRegistry, StatsUsersCount, TabPanelsCell, TagsCell, Taxonomization, Taxonomy, TaxonomyFilter, TaxonomyFilterItem, TaxonomyFilterPresenter, TaxonomyPresenter, TimeoutsController, Tokenizer, TosController, TosPageCell, Traceability, TranslationBarCell, UnableToComposeQueriesException, UnlikeResource, UnsubscribeSettings, UpdateAccount, UpdateNotificationsSettings, UpdatePassword, UpdateResourcesTaxonomies, UpdateSearchIndexesJob, UploadModalCell, UploadValidationForm, UploadValidationsController, UrlOptionResolver, User, UserActivitiesController, UserActivityCell, UserBaseEntity, UserBlock, UserGroupMailer, UserInputScrubber, UserManagerPermissions, UserModeration, UserPresenter, UserProfileCell, UserReport, UserReportMailer, UserTimelineCell, UserUpdateMailer, ValidateUpload, ValidationErrorsPresenter, VersionAuthorCell, VersionCell, VersionsListCell, VersionsListItemCell, ViewHooks, ViewModel, WelcomeNotificationEvent, WizardStepFormCell, WorkflowRegistry

Class Method Summary collapse

Class Method Details

.admin_filter(name) ⇒ Object



883
884
885
# File 'lib/decidim/core.rb', line 883

def self.admin_filter(name, &)
  AdminFiltersRegistry.register(name.to_sym, &)
end

.authorization_transfer_registryObject

Public: Stores the registry for authorization transfer handlers



861
862
863
# File 'lib/decidim/core.rb', line 861

def self.authorization_transfer_registry
  @authorization_transfer_registry ||= BlockRegistry.new
end

.component_manifestsObject

Public: Finds all registered component manifest’s via the ‘register_component` method.

Returns an Array.



784
785
786
# File 'lib/decidim/core.rb', line 784

def self.component_manifests
  component_registry.manifests.sort_by(&:name)
end

.component_registryObject

Public: Stores the registry of components



826
827
828
# File 'lib/decidim/core.rb', line 826

def self.component_registry
  @component_registry ||= ManifestRegistry.new(:components)
end

.configObject



154
# File 'lib/decidim/core.rb', line 154

def config = self

.configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (Decidim)

    the object that the method was called on



156
157
158
# File 'lib/decidim/core.rb', line 156

def configure
  yield self
end

.content_blocksObject

Public: Stores an instance of ContentBlockRegistry



893
894
895
# File 'lib/decidim/core.rb', line 893

def self.content_blocks
  @content_blocks ||= ContentBlockRegistry.new
end

.deprecator(gem_name: "decidim-core", deprecation_horizon: "0.32") ⇒ Object



988
989
990
# File 'lib/decidim/core.rb', line 988

def self.deprecator(gem_name: "decidim-core", deprecation_horizon: "0.32")
  @deprecator ||= ActiveSupport::Deprecation.new(deprecation_horizon, gem_name)
end

.find_component_manifest(name) ⇒ Object

Public: Finds a component manifest by the component’s name.

name - The name of the ComponentManifest to find.

Returns a ComponentManifest if found, nil otherwise.



801
802
803
# File 'lib/decidim/core.rb', line 801

def self.find_component_manifest(name)
  component_registry.find(name.to_sym)
end

.find_participatory_space_manifest(name) ⇒ Object

Public: Finds a participatory space manifest by the participatory space’s name.

name - The name of the ParticipatorySpaceManifest to find.

Returns a ParticipatorySpaceManifest if found, nil otherwise.



811
812
813
# File 'lib/decidim/core.rb', line 811

def self.find_participatory_space_manifest(name)
  participatory_space_registry.find(name.to_sym)
end

.find_resource_manifest(resource_name_or_klass) ⇒ Object

Public: Finds a resource manifest by the resource’s name.

resource_name_or_class - The String of the ResourceManifest name or the class of the ResourceManifest model_class to find.

Returns a ResourceManifest if found, nil otherwise.



821
822
823
# File 'lib/decidim/core.rb', line 821

def self.find_resource_manifest(resource_name_or_klass)
  resource_registry.find(resource_name_or_klass)
end

.first_warning_inactive_users_after_daysObject

Returns the inactivity threshold (in days) to trigger the first warning email.



303
304
305
# File 'lib/decidim/core.rb', line 303

def self.first_warning_inactive_users_after_days
  delete_inactive_users_after_days - delete_inactive_users_first_warning_days_before
end

.global_enginesObject

Public: Finds all registered engines via the ‘register_global_engine’ method.

Returns an Array



718
719
720
# File 'lib/decidim/core.rb', line 718

def self.global_engines
  @global_engines ||= {}
end

.iconsObject



879
880
881
# File 'lib/decidim/core.rb', line 879

def self.icons
  @icons ||= Decidim::IconRegistry.new
end

.last_warning_inactive_users_after_daysObject

Returns the inactivity threshold (in days) to trigger the final warning email.



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

def self.last_warning_inactive_users_after_days
  delete_inactive_users_first_warning_days_before - delete_inactive_users_last_warning_days_before
end

.machine_translation_service_klassObject



936
937
938
939
940
# File 'lib/decidim/core.rb', line 936

def self.machine_translation_service_klass
  return unless Decidim.enable_machine_translations

  Decidim.machine_translation_service.to_s.safe_constantize
end

Public: Registers configuration for a new or existing menu

name - A string or symbol with the name of the menu &block - A block using the DSL defined in ‘Decidim::MenuItem`



875
876
877
# File 'lib/decidim/core.rb', line 875

def self.menu(name, &)
  MenuRegistry.register(name.to_sym, &)
end

.module_installed?(mod) ⇒ Boolean

Checks if a particular decidim gem is installed and needed by this particular instance. Preferably this happens through bundler by inspecting the Gemfile of the instance but when Decidim is used without bundler, this will check:

  1. If the gem is globally available or not in the loaded specs, i.e. the gems available in the gem install directory/directories.

  2. If the gem has been required through ‘require “decidim/foo”`.

Using bundler is suggested as it will provide more accurate results regarding what is actually needed. It will resolve all the gems listed in the Gemfile and also their dependencies which provides us accurate information whether a gem is needed by the instance or not.

Note that using something like defined?(Decidim::Foo) will not work because the way the Decidim handles version definitions for each gem. After the gems are loaded, this would always return true because the version definition files of each module define that module which means it is available at runtime if the gem is installed in the gem load path. In some situations it can be installed there through other projects or through the command line even if the instance does not require that module or even through installing gems from git sources or from file paths.

When a gem is reported as “needed” by the dependency resolver, this will also require that module ensuring its availability for the initialization code.

Parameters:

  • mod (Symbol, String)

    The module name to check, e.g. ‘:proposals`.

Returns:

  • (Boolean)

    A boolean indicating whether the module is installed.



974
975
976
977
978
979
980
981
982
983
984
985
986
# File 'lib/decidim/core.rb', line 974

def self.module_installed?(mod)
  return false unless Decidim::DependencyResolver.instance.needed?("decidim-#{mod}")

  # The dependency may not be automatically loaded through the Gemfile if the
  # user lists e.g. "decidim-core" and "decidim-budgets" in it. In this
  # situation, "decidim-comments" is also needed because it is a dependency
  # for "decidim-budgets".
  require "decidim/#{mod}"

  true
rescue LoadError
  false
end

.notification_settings(name) ⇒ Object

Public: Registers a notification setting.

Returns nothing.



768
769
770
# File 'lib/decidim/core.rb', line 768

def self.notification_settings(name, &)
  notification_settings_registry.register(name, &)
end

.notification_settings_registryObject

Public: Stores the registry of notifications settings



851
852
853
# File 'lib/decidim/core.rb', line 851

def self.notification_settings_registry
  @notification_settings_registry ||= ManifestRegistry.new(:notification_settings)
end

.open_data_manifestsObject



654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
# File 'lib/decidim/core.rb', line 654

def self.open_data_manifests
  [
    CoreDataManifest.new(
      name: :moderated_users,
      collection: lambda { |organization|
        Decidim::UserModeration.joins(:user).where(decidim_users: { decidim_organization_id: organization.id }).where.not(decidim_users: { blocked_at: nil })
      },
      serializer: Decidim::Exporters::OpenDataBlockedUserSerializer,
      include_in_open_data: true
    ),
    CoreDataManifest.new(
      name: :moderations,
      collection: ->(organization) { Decidim::Moderation.where(participatory_space: organization.participatory_spaces).includes(:reports).hidden },
      serializer: Decidim::Exporters::OpenDataModerationSerializer,
      include_in_open_data: true
    ),
    CoreDataManifest.new(
      name: :users,
      collection: ->(organization) { Decidim::User.where(organization:).confirmed.not_blocked.includes(avatar_attachment: :blob) },
      serializer: Decidim::Exporters::OpenDataUserSerializer,
      include_in_open_data: true
    ),
    CoreDataManifest.new(
      name: :taxonomies,
      collection: ->(organization) { Decidim::Taxonomy.where(organization:) },
      serializer: Decidim::Exporters::OpenDataTaxonomySerializer,
      include_in_open_data: true
    )
  ]
end

.organization_settings(model) ⇒ Object

Public: Returns the correct settings object for the given organization or the default settings object when the organization cannot be determined. The model to be passed to this method can be any model that responds to the ‘organization` method or the organization itself. If the given model is not an organization or does not respond to the organization method, returns the default organization settings.

model - The target model for which to fetch the settings object, either an

organization or a model responding to the `organization` method.


912
913
914
915
916
917
918
919
920
921
922
# File 'lib/decidim/core.rb', line 912

def self.organization_settings(model)
  organization = if model.is_a?(Decidim::Organization)
                   model
                 elsif model.respond_to?(:organization) && model.organization.present?
                   model.organization
                 end

  return Decidim::OrganizationSettings.defaults unless organization

  Decidim::OrganizationSettings.for(organization)
end

.participatory_space_manifestsObject

Public: Finds all registered participatory space manifest’s via the ‘register_participatory_space` method.

Returns an Array.



792
793
794
# File 'lib/decidim/core.rb', line 792

def self.participatory_space_manifests
  participatory_space_registry.manifests
end

.participatory_space_registryObject

Public: Stores the registry of participatory spaces



831
832
833
# File 'lib/decidim/core.rb', line 831

def self.participatory_space_registry
  @participatory_space_registry ||= ManifestRegistry.new(:participatory_spaces)
end

.permissions_registryObject

Public: Stores the registry for user permissions



856
857
858
# File 'lib/decidim/core.rb', line 856

def self.permissions_registry
  @permissions_registry ||= PermissionsRegistry.new
end

.register_assets_path(path) ⇒ Object



942
943
944
# File 'lib/decidim/core.rb', line 942

def self.register_assets_path(path)
  Rails.autoloaders.main.ignore(path)
end

.register_component(name) ⇒ Object

Public: Registers a component, usually held in an external library or in a separate folder in the main repository. Exposes a DSL defined by ‘Decidim::ComponentManifest`.

Component manifests are held in a global registry and are used in all kinds of places to figure out what new components or functionalities the component provides.

name - A Symbol with the component’s unique name.

Returns nothing.



732
733
734
# File 'lib/decidim/core.rb', line 732

def self.register_component(name, &)
  component_registry.register(name, &)
end

.register_global_engine(name, engine, options = {}) ⇒ Object

Public: Registers a global engine. This method is intended to be used by component engines that also offer unscoped functionality

name - The name of the engine to register. Should be unique. engine - The engine to register. options - Options to pass to the engine.

:at - The route to mount the engine to.

Returns nothing.



694
695
696
697
698
699
700
701
702
703
# File 'lib/decidim/core.rb', line 694

def self.register_global_engine(name, engine, options = {})
  return if global_engines.has_key?(name)

  options[:at] ||= "/#{name}"

  global_engines[name.to_sym] = {
    at: options[:at],
    engine:
  }
end

.register_participatory_space(name) ⇒ Object

Public: Registers a participatory space, usually held in an external library or in a separate folder in the main repository. Exposes a DSL defined by ‘Decidim::ParticipatorySpaceManifest`.

Participatory space manifests are held in a global registry and are used in all kinds of places to figure out what new components or functionalities the participatory space provides.

name - A Symbol with the participatory space’s unique name.

Returns nothing.



747
748
749
# File 'lib/decidim/core.rb', line 747

def self.register_participatory_space(name, &)
  participatory_space_registry.register(name, &)
end

.register_resource(name) ⇒ Object

Public: Registers a resource.

Returns nothing.



754
755
756
# File 'lib/decidim/core.rb', line 754

def self.register_resource(name, &)
  resource_registry.register(name, &)
end

.register_social_share_service(name) ⇒ Object

Public: Registers a social share service.

Returns nothing.



761
762
763
# File 'lib/decidim/core.rb', line 761

def self.register_social_share_service(name, &)
  social_share_services_registry.register(name, &)
end

.reminders_registryObject

Public: Stores the registry of reminders



836
837
838
# File 'lib/decidim/core.rb', line 836

def self.reminders_registry
  @reminders_registry ||= ReminderRegistry.new
end

.reset_all_column_informationObject

Finds all currently loaded Decidim ActiveRecord classes and resets their column information.



243
244
245
246
247
248
249
250
# File 'lib/decidim/core.rb', line 243

def self.reset_all_column_information
  ActiveRecord::Base.descendants.each do |cls|
    next if cls.name.nil? # abstract classes registered during tests
    next if cls.abstract_class? || !cls.name.match?(/^Decidim::/)

    cls.reset_column_information
  end
end

.resource_manifestsObject

Public: Finds all registered resource manifests via the ‘register_component` method.

Returns an Array.



776
777
778
# File 'lib/decidim/core.rb', line 776

def self.resource_manifests
  resource_registry.manifests
end

.resource_registryObject

Public: Stores the registry of resource spaces



841
842
843
# File 'lib/decidim/core.rb', line 841

def self.resource_registry
  @resource_registry ||= ManifestRegistry.new(:resources)
end

.seed!Object

Loads seeds from all engines.



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'lib/decidim/core.rb', line 162

def self.seed!
  # After running the migrations, some records may have loaded their column
  # caches at different stages of the migration process, so in order to
  # prevent any "undefined method" errors if these tasks are run
  # consecutively, reset the column cache before the migrations.
  reset_all_column_information

  # Faker needs to have the `:en` locale in order to work properly, so we
  # must enforce it during the seeds.
  original_locale = I18n.available_locales
  I18n.available_locales = original_locale + [:en] unless original_locale.include?(:en)

  Rails.application.railties.to_a.uniq.each do |railtie|
    next unless railtie.respond_to?(:load_seed) && railtie.class.name.include?("Decidim::")

    railtie.load_seed
  end

  participatory_space_manifests.each do |manifest|
    manifest.seed!

    seed_contextual_help_sections!(manifest)
  end

  seed_gamification_badges!

  seed_likes!

  I18n.available_locales = original_locale
end

.seed_contextual_help_sections!(manifest) ⇒ Object



193
194
195
196
197
198
199
200
201
202
203
# File 'lib/decidim/core.rb', line 193

def self.seed_contextual_help_sections!(manifest)
  Organization.all.each do |organization|
    ContextualHelpSection.set_content(
      organization,
      manifest.name,
      Decidim::Faker::Localized.wrapped("<p>", "</p>") do
        Decidim::Faker::Localized.sentence(word_count: 15)
      end
    )
  end
end

.seed_gamification_badges!Object



205
206
207
208
209
210
211
212
213
214
215
216
# File 'lib/decidim/core.rb', line 205

def self.seed_gamification_badges!
  Gamification.badges.each do |badge|
    puts "Setting random values for the \"#{badge.name}\" badge..." # rubocop:disable Rails/Output
    User.all.find_each do |user|
      Gamification::BadgeScore.find_or_create_by!(
        user:,
        badge_name: badge.name,
        value: Random.rand(0...20)
      )
    end
  end
end

.seed_likes!Object



218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
# File 'lib/decidim/core.rb', line 218

def self.seed_likes!
  resources_types = Decidim.resource_manifests
                           .map { |resource| resource.attributes[:model_class_name] }
                           .select { |resource| resource.constantize.include? Decidim::Likeable }

  resources_types.each do |resource_type|
    resource_type.constantize.find_each do |resource|
      # exclude the users that already liked
      users = resource.likes.map(&:author)
      remaining_count = Decidim::User.count - users.count
      next if remaining_count < 1

      rand([50, remaining_count].min).times do
        user = (Decidim::User.all - users).sample
        next unless user

        Decidim::Like.create!(resource:, author: user)
        users << user
      end
    end
  end
end

.social_share_services_registryObject

Public: Stores the registry of social shares services



846
847
848
# File 'lib/decidim/core.rb', line 846

def self.social_share_services_registry
  @social_share_services_registry ||= ManifestRegistry.new(:social_share_services)
end

.statsObject

Public: Stores an instance of StatsRegistry



866
867
868
# File 'lib/decidim/core.rb', line 866

def self.stats
  @stats ||= StatsRegistry.new
end

.traceabilityObject

Public: Stores an instance of Traceability



898
899
900
# File 'lib/decidim/core.rb', line 898

def self.traceability
  @traceability ||= Traceability.new
end

.unregister_global_engine(name) ⇒ Object

Semiprivate: Removes a global engine from the registry. Mostly used on testing, no real reason to use this on production.

name - The name of the global engine to remove.

Returns nothing.



711
712
713
# File 'lib/decidim/core.rb', line 711

def self.unregister_global_engine(name)
  global_engines.delete(name.to_sym)
end

.view_hooksObject

Public: Stores an instance of ViewHooks



888
889
890
# File 'lib/decidim/core.rb', line 888

def self.view_hooks
  @view_hooks ||= ViewHooks.new
end