Decidim Toggle

Decidim Toggle

pipeline status License: AGPL-3.0 Docs

Register organization settings tabs for Decidim modules—one form, one command, one read API per gem.

Contents

Quick start

Add a settings tab in three steps:

  1. Form — include Decidim::Toggle::ModuleConfigForm, set module_config_name, declare attributes.
module MyModule
  class AdminConfigForm < Decidim::Form
    include Decidim::Toggle::ModuleConfigForm

    self.module_config_name = "my_module"
    mimic :organization
    attribute :enabled, :boolean
  end
end
  1. Register — in your engine, after decidim_toggle.organization_settings_tabs:
initializer "decidim_my_module.organization_settings_tab", after: "decidim_toggle.organization_settings_tabs" do
  Decidim::Toggle.settings_tabs :organization_settings do |tabs|
    tabs.add_tab :my_module, "My module",
                 form: MyModule::AdminConfigForm,
                 command: Decidim::Toggle::UpdateModuleConfigCommand,
                 module_name: :my_module
  end
end
  1. ReadDecidim::Toggle.config_for(organization, :my_module).

Optional view partial: form_layout_partial: on add_tab — see Customize views.

Full walkthrough: Add a settings tab.

Host app install

gem "decidim-toggle"
bundle install
rails decidim_toggle:install:migrations
rails db:migrate

Documentation

octree-gva.github.io/decidim-toggle — integrator guides (registration, views, storage) and contributor docs.

Development (this gem)

Docker + ./bin/check (RuboCop, erblint, RSpec) — see CONTRIBUTING.md and Contribute.

Support

GitLab issues for bugs and integration questions.

Contributing

Pull requests welcome. Read CONTRIBUTING.md before opening a merge request.

License

AGPL-3.0.