Sha256: 8a268ed54fb3435696f16bef1657bcf594728d036105e78e4f7481b03e895851

Contents?: true

Size: 832 Bytes

Versions: 32

Compression:

Stored size: 832 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Admin
    # A form object to create or update pages.
    class StaticPageForm < Form
      include TranslatableAttributes

      attribute :slug, String
      translatable_attribute :title, String
      translatable_attribute :content, String

      mimic :static_page

      validates :slug, presence: true
      validates :title, :content, translatable_presence: true
      validates :slug, format: { with: /\A[a-z0-9-]+/ }

      validate :slug, :slug_uniqueness

      alias organization current_organization

      def slug
        super.to_s.downcase
      end

      private

      def slug_uniqueness
        return unless organization && organization.static_pages.where(slug: slug).where.not(id: id).any?

        errors.add(:slug, :taken)
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 2 rubygems

Version Path
decidim-admin-0.6.8 app/forms/decidim/admin/static_page_form.rb
decidim-0.6.8 decidim-admin/app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.6.7 app/forms/decidim/admin/static_page_form.rb
decidim-0.6.7 decidim-admin/app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.6.6 app/forms/decidim/admin/static_page_form.rb
decidim-0.6.6 decidim-admin/app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.6.5 app/forms/decidim/admin/static_page_form.rb
decidim-0.6.5 decidim-admin/app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.6.4 app/forms/decidim/admin/static_page_form.rb
decidim-0.6.4 decidim-admin/app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.6.3 app/forms/decidim/admin/static_page_form.rb
decidim-0.6.3 decidim-admin/app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.6.2 app/forms/decidim/admin/static_page_form.rb
decidim-0.6.2 decidim-admin/app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.6.1 app/forms/decidim/admin/static_page_form.rb
decidim-0.6.1 decidim-admin/app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.6.0 app/forms/decidim/admin/static_page_form.rb
decidim-0.6.0 decidim-admin/app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.5.1 app/forms/decidim/admin/static_page_form.rb
decidim-0.5.1 decidim-admin/app/forms/decidim/admin/static_page_form.rb