Sha256: f36ababd7ad40eae9776c4d0fc28d72a8becd43e013b5b595522782ceee796cb

Contents?: true

Size: 1.46 KB

Versions: 6

Compression:

Stored size: 1.46 KB

Contents

# frozen_string_literal: true

module Decidim
  module MultipleAttachmentsMethods
    private

    def build_attachments
      @documents = []
      @form.add_documents.each do |file|
        @documents << Attachment.new(
          title: { I18n.locale => file.original_filename },
          attached_to: @attached_to || documents_attached_to,
          file: file
        )
      end
    end

    def attachments_invalid?
      @documents.each do |document|
        next if document.valid? || !document.errors.has_key?(:file)

        document.errors[:file].each do |error|
          @form.errors.add(:add_documents, error)
        end

        return true
      end

      false
    end

    def create_attachments
      @documents.map! do |document|
        document.attached_to = documents_attached_to
        document.save!
        @form.documents << document
      end
    end

    def document_cleanup!
      documents_attached_to.documents.each do |document|
        document.destroy! if @form.documents.map(&:id).exclude? document.id
      end

      documents_attached_to.reload
      documents_attached_to.instance_variable_set(:@documents, nil)
    end

    def process_attachments?
      @form.add_documents.any?
    end

    def documents_attached_to
      return @attached_to if @attached_to.present?
      return form.current_organization if form.respond_to?(:current_organization)

      form.current_component.organization if form.respond_to?(:current_component)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
decidim-core-0.24.3 app/commands/decidim/multiple_attachments_methods.rb
decidim-core-0.24.2 app/commands/decidim/multiple_attachments_methods.rb
decidim-core-0.24.1 app/commands/decidim/multiple_attachments_methods.rb
decidim-core-0.24.0 app/commands/decidim/multiple_attachments_methods.rb
decidim-core-0.24.0.rc2 app/commands/decidim/multiple_attachments_methods.rb
decidim-core-0.24.0.rc1 app/commands/decidim/multiple_attachments_methods.rb