Sha256: 46d92c7954f2ddb79ea92a7bdea167df0295272976a1da514e161cac35fed2de

Contents?: true

Size: 1.46 KB

Versions: 2

Compression:

Stored size: 1.46 KB

Contents

# frozen_string_literal: true

require_dependency "decidim/features/namer"

Decidim.register_feature(:pages) do |feature|
  feature.engine = Decidim::Pages::Engine
  feature.admin_engine = Decidim::Pages::AdminEngine
  feature.icon = "decidim/pages/icon.svg"

  feature.on(:create) do |instance|
    Decidim::Pages::CreatePage.call(instance) do
      on(:invalid) { raise "Can't create page" }
    end
  end

  feature.on(:destroy) do |instance|
    Decidim::Pages::DestroyPage.call(instance) do
      on(:error) { raise "Can't destroy page" }
    end
  end

  feature.settings(:global) do |settings|
    settings.attribute :comments_enabled, type: :boolean, default: true
  end

  feature.settings(:step) do |settings|
    settings.attribute :comments_blocked, type: :boolean, default: false
  end

  feature.seeds do
    Decidim::ParticipatoryProcess.all.each do |process|
      next unless process.steps.any?

      feature = Decidim::Feature.create!(
        name: Decidim::Features::Namer.new(process.organization.available_locales, :pages).i18n_name,
        manifest_name: :pages,
        published_at: Time.current,
        participatory_process: process
      )

      page = Decidim::Pages::Page.create!(
        feature: feature,
        title: Decidim::Faker::Localized.sentence(2),
        body: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
          Decidim::Faker::Localized.paragraph(3)
        end
      )

      Decidim::Comments::Seed.comments_for(page)
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
decidim-pages-0.0.5 lib/decidim/pages/feature.rb
decidim-0.0.5 decidim-pages/lib/decidim/pages/feature.rb