Sha256: 63559003f2b8a12f0e3a984ad4a117863c28e5c6f733341c69cbcab634f54a61

Contents?: true

Size: 1.29 KB

Versions: 9

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

module Decidim
  module TermCustomizer
    module Admin
      # A form object to be used when admin users want to import a collection of proposals
      # from a participatory text.
      class TranslationsImportForm < Decidim::Form
        ACCEPTED_MIME_TYPES = Decidim::TermCustomizer::Import::Readers::ACCEPTED_MIME_TYPES
        MIME_TYPE_ZIP = "application/zip"

        mimic :translations_import

        attribute :file

        validates :file, presence: true
        validate :accepted_mime_type

        def file_path
          file&.path
        end

        def mime_type
          file&.content_type
        end

        def zip_file?
          mime_type == MIME_TYPE_ZIP
        end

        def accepted_mime_type
          accepted_mime_types = ACCEPTED_MIME_TYPES.values + [MIME_TYPE_ZIP]
          return if accepted_mime_types.include?(mime_type)

          errors.add(
            :file,
            I18n.t(
              "activemodel.errors.models.translations_import.attributes.file.invalid_mime_type",
              valid_mime_types: ACCEPTED_MIME_TYPES.keys.map do |m|
                I18n.t("decidim.term_customizer.admin.translations.new_import.accepted_mime_types.#{m}")
              end.join(", ")
            )
          )
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
decidim-term_customizer-0.23.0 app/forms/decidim/term_customizer/admin/translations_import_form.rb
decidim-term_customizer-0.22.0 app/forms/decidim/term_customizer/admin/translations_import_form.rb
decidim-term_customizer-0.21.0 app/forms/decidim/term_customizer/admin/translations_import_form.rb
decidim-term_customizer-0.20.0 app/forms/decidim/term_customizer/admin/translations_import_form.rb
decidim-term_customizer-0.19.1 app/forms/decidim/term_customizer/admin/translations_import_form.rb
decidim-term_customizer-0.19.0 app/forms/decidim/term_customizer/admin/translations_import_form.rb
decidim-term_customizer-0.18.0 app/forms/decidim/term_customizer/admin/translations_import_form.rb
decidim-term_customizer-0.17.1 app/forms/decidim/term_customizer/admin/translations_import_form.rb
decidim-term_customizer-0.17.0 app/forms/decidim/term_customizer/admin/translations_import_form.rb