Class: Decidim::ParticipatoryProcesses::Admin::ParticipatoryProcessImportForm

Inherits:
Form
  • Object
show all
Includes:
HasUploadValidations, TranslatableAttributes
Defined in:
app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb

Overview

A form object used to import a participatory processes from the admin dashboard.

Constant Summary collapse

JSON_MIME_TYPE =
"application/json"
ACCEPTED_TYPES =

Accepted mime types keys: are used for dynamic help text on admin form. values: are used to validate the file format of imported document.

WARNING: consider adding/removing the relative translation key at decidim.participatory_processes.admin.new_import.accepted_types when modifying this hash

{
  json: JSON_MIME_TYPE
}.freeze

Instance Method Summary collapse

Instance Method Details

#document_textObject



43
44
45
# File 'app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb', line 43

def document_text
  @document_text ||= document&.read
end

#document_typeObject



58
59
60
# File 'app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb', line 58

def document_type
  document.content_type
end

#document_type_must_be_validObject



47
48
49
50
51
# File 'app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb', line 47

def document_type_must_be_valid
  return if valid_mime_types.include?(document_type)

  errors.add(:document, i18n_invalid_document_type_text)
end

#i18n_invalid_document_type_textObject



62
63
64
65
66
# File 'app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb', line 62

def i18n_invalid_document_type_text
  I18n.t("invalid_document_type",
         scope: "activemodel.errors.models.participatory_process.attributes.document",
         valid_mime_types: i18n_valid_mime_types_text)
end

#i18n_valid_mime_types_textObject



68
69
70
71
72
# File 'app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb', line 68

def i18n_valid_mime_types_text
  ACCEPTED_TYPES.keys.map do |mime_type|
    I18n.t(mime_type, scope: "decidim.participatory_processes.admin.new_import.accepted_types")
  end.join(", ")
end

#valid_mime_typesObject

Return ACCEPTED_MIME_TYPES plus ‘text/plain` for better markdown support



54
55
56
# File 'app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb', line 54

def valid_mime_types
  ACCEPTED_TYPES.values
end