Core functionality in Decidim. Every single decidim functionality depends on this gem.
You'll be using indirectly on any decidim application.
Add decidim to your Gemfile and you'll be using it:
gem 'decidim'And then execute:
bundleUser authentication is set up with Devise with its modules, see the Decidim::User model configuration and its setup initializer.
Core implements an Amendment feature that can be activated in the components. As of now, it's only implemented in the proposal component.
This feature makes it possible for anyone to edit the text of an amendable resource and create a child resource as an amendment. This child resource may receive support and the author of the amendable resource may accept or reject the amendment (or child proposal). In case of rejection, the author of the rejected emendation may raise the child resource to an independent resource.
Amendablemodule: A concern with the features needed when you want a model to be amendable.Amendmentclass: The ApplicationRecord that includes the polymorphic associations to make the model amendable.
Models that want to be amendable must include Amendable and declare an amendable configuration for the model.
Core implements a Search Engine that indexes models from all modules globally.
This feature is implemented using PostgreSQL capability for full text search via pg_search gem.
This module also includes the following models to Decidim's Global Search:
Users
Searchablemodule: A concern with the features needed when you want a model to be searchable.SearchableResourceclass: The ActiveRecord that finally includes PgSearch and maps the indexed documents into a model.
Models that want to be indexed must include Searchable and declare Searchable.searchable_fields.
They should be registered as resources. In their manifest, in the register_resource section, the artifact should be declared searchable.
This can be done in an initializer (like user does), in a participatory_space manifest, or in a component manifest. i.e.:
initializer "decidim.core.register_resources" do
Decidim.register_resource(:user) do |resource|
resource.model_class_name = "Decidim::User"
resource.card = "decidim/user_profile"
resource.searchable = true
end
...Core adds an implementation to show APP metrics within some pages. You can see specific documentation at Metrics
See Decidim.
See Decidim.