podemos-info/participa2

View on GitHub
decidim-module-gravity_forms/lib/decidim/gravity_forms/component.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

require_dependency "decidim/components/namer"

Decidim.register_component(:gravity_forms) do |component|
  component.engine = Decidim::GravityForms::Engine
  component.admin_engine = Decidim::GravityForms::AdminEngine
  component.icon = "decidim/gravity_forms/icon.svg"
  component.permissions_class_name = "Decidim::GravityForms::Permissions"

  # component.on(:before_destroy) do |instance|
  #   # Code executed before removing the component
  # end

  # These actions permissions can be configured in the admin panel
  component.actions = %w(fill_in)

  component.settings(:global) do |settings|
    settings.attribute :domain, type: :string
    settings.attribute :resources_permissions_enabled, type: :boolean, default: true
  end

  # component.settings(:step) do |settings|
  #   # Add your settings per step
  # end

  component.register_resource(:gravity_form) do |resource|
    resource.model_class_name = "Decidim::GravityForms::GravityForm"
    resource.actions = %w(fill_in)
  end

  # component.register_stat :some_stat do |context, start_at, end_at|
  #   # Register some stat number to the application
  # end

  component.seeds do |participatory_space|
    component = Decidim::Component.create!(
      name: Decidim::Components::Namer.new(participatory_space.organization.available_locales, :gravity_forms).i18n_name,
      manifest_name: :gravity_forms,
      published_at: Time.current,
      participatory_space: participatory_space,
      settings: {
        domain: "bored-sloth.w6.gravitydemo.com"
      }
    )

    Decidim::GravityForms::GravityForm.create!(
      component: component,
      title: Decidim::Faker::Localized.sentence,
      description: Decidim::Faker::Localized.sentence(3),
      slug: Faker::Internet.unique.slug(nil, "-"),
      form_number: 1
    )
  end
end