Sha256: 0a294116bd0db36c376d4b9f8973e57a172b3ab87f92e6ad49c80af7c830c3f9

Contents?: true

Size: 1.05 KB

Versions: 4

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true
module Decidim
  module Admin
    # A form object used to create participatory processes from the admin
    # dashboard.
    #
    class ParticipatoryProcessForm < Rectify::Form
      include TranslatableAttributes

      translatable_attribute :title, String
      translatable_attribute :subtitle, String
      translatable_attribute :description, String
      translatable_attribute :short_description, String

      mimic :participatory_process

      attribute :slug, String
      attribute :hashtag, String
      attribute :hero_image
      attribute :banner_image

      validates :slug, presence: true
      translatable_validates :title, :subtitle, :description, :short_description, presence: true

      validate :slug, :slug_uniqueness

      private

      def slug_uniqueness
        return unless ParticipatoryProcess.where(slug: slug).where.not(id: id).any?

        errors.add(
          :slug,
          I18n.t("models.participatory_process.validations.slug_uniqueness", scope: "decidim.admin")
        )
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
decidim-admin-0.0.1.alpha7 app/forms/decidim/admin/participatory_process_form.rb
decidim-0.0.1.alpha7 decidim-admin/app/forms/decidim/admin/participatory_process_form.rb
decidim-admin-0.0.1.alpha6 app/forms/decidim/admin/participatory_process_form.rb
decidim-0.0.1.alpha6 decidim-admin/app/forms/decidim/admin/participatory_process_form.rb