Sha256: cf542db7d812e8c031c2bae2259d7c0e8f834a7db2324c00df9a01fd9f65e7bd

Contents?: true

Size: 1.81 KB

Versions: 34

Compression:

Stored size: 1.81 KB

Contents

# frozen_string_literal: true

require "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.on(:copy) do |context|
    Decidim::Pages::CopyPage.call(context) do
      on(:invalid) { raise "Can't duplicate page" }
    end
  end

  feature.register_stat :pages_count do |features, start_at, end_at|
    pages = Decidim::Pages::Page.where(feature: features)
    pages = pages.where("created_at >= ?", start_at) if start_at.present?
    pages = pages.where("created_at <= ?", end_at) if end_at.present?
    pages.count
  end

  feature.settings(:global) do |settings|
    settings.attribute :announcement, type: :text, translated: true, editor: true
  end

  feature.settings(:step) do |settings|
    settings.attribute :announcement, type: :text, translated: true, editor: true
  end

  feature.register_resource do |resource|
    resource.model_class_name = "Decidim::Pages::Page"
  end

  feature.seeds do |participatory_space|
    feature = Decidim::Feature.create!(
      name: Decidim::Features::Namer.new(participatory_space.organization.available_locales, :pages).i18n_name,
      manifest_name: :pages,
      published_at: Time.current,
      participatory_space: participatory_space
    )

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

Version data entries

34 entries across 34 versions & 2 rubygems

Version Path
decidim-pages-0.10.1 lib/decidim/pages/feature.rb
decidim-pages-0.10.0 lib/decidim/pages/feature.rb
decidim-pages-0.9.3 lib/decidim/pages/feature.rb
decidim-pages-0.9.2 lib/decidim/pages/feature.rb
decidim-pages-0.9.1 lib/decidim/pages/feature.rb
decidim-pages-0.9.0 lib/decidim/pages/feature.rb
decidim-pages-0.8.4 lib/decidim/pages/feature.rb
decidim-pages-0.8.3 lib/decidim/pages/feature.rb
decidim-pages-0.8.2 lib/decidim/pages/feature.rb
decidim-pages-0.8.1 lib/decidim/pages/feature.rb
decidim-pages-0.8.0 lib/decidim/pages/feature.rb
decidim-pages-0.7.4 lib/decidim/pages/feature.rb
decidim-pages-0.7.3 lib/decidim/pages/feature.rb
decidim-pages-0.7.2 lib/decidim/pages/feature.rb
decidim-pages-0.7.1 lib/decidim/pages/feature.rb
decidim-pages-0.7.0 lib/decidim/pages/feature.rb
decidim-pages-0.6.8 lib/decidim/pages/feature.rb
decidim-0.6.8 decidim-pages/lib/decidim/pages/feature.rb
decidim-pages-0.6.7 lib/decidim/pages/feature.rb
decidim-0.6.7 decidim-pages/lib/decidim/pages/feature.rb