Sha256: e6b1e51a9b2cfe8842c0ebd3318e772f645e5bd82548ea145e04b9aca6986a73

Contents?: true

Size: 1.23 KB

Versions: 32

Compression:

Stored size: 1.23 KB

Contents

# frozen_string_literal: true

module Decidim
  module Admin
    # A form object used to create attachments in a participatory process.
    #
    class AttachmentForm < Form
      include TranslatableAttributes

      attribute :file
      translatable_attribute :title, String
      translatable_attribute :description, String
      attribute :weight, Integer, default: 0
      attribute :attachment_collection_id, Integer

      mimic :attachment

      validates :file, presence: true, unless: :persisted?
      validates :title, :description, translatable_presence: true
      validates :attachment_collection, presence: true, if: ->(form) { form.attachment_collection_id.present? }
      validates :attachment_collection_id, inclusion: { in: :attachment_collection_ids }, allow_blank: true

      delegate :attached_to, to: :context, prefix: false

      def attachment_collections
        @attachment_collections ||= attached_to.attachment_collections
      end

      def attachment_collection
        @attachment_collection ||= attachment_collections.find_by(id: attachment_collection_id)
      end

      private

      def attachment_collection_ids
        @attachment_collection_ids ||= attachment_collections.pluck(:id)
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
decidim-admin-0.22.0 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.21.0 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.20.1 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.20.0 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.19.1 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.18.1 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.19.0 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.17.2 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.18.0 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.17.1 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.16.1 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.17.0 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.16.0 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.15.2 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.15.1 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.15.0 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.14.4 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.14.3 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.14.2 app/forms/decidim/admin/attachment_form.rb
decidim-admin-0.14.1 app/forms/decidim/admin/attachment_form.rb