[#1421] Move piece justificative error code to piece justificative champ
This commit is contained in:
parent
6af27a7190
commit
95666238ea
2 changed files with 39 additions and 39 deletions
|
@ -11,23 +11,6 @@ class Champ < ApplicationRecord
|
||||||
scope :public_only, -> { where(private: false) }
|
scope :public_only, -> { where(private: false) }
|
||||||
scope :private_only, -> { where(private: true) }
|
scope :private_only, -> { where(private: true) }
|
||||||
|
|
||||||
PIECE_JUSTIFICATIVE_FILE_MAX_SIZE = 200.megabytes
|
|
||||||
|
|
||||||
PIECE_JUSTIFICATIVE_FILE_ACCEPTED_FORMATS = [
|
|
||||||
"application/pdf",
|
|
||||||
"application/msword",
|
|
||||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
||||||
"application/vnd.ms-excel",
|
|
||||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
||||||
"application/vnd.ms-powerpoint",
|
|
||||||
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
||||||
"application/vnd.oasis.opendocument.text",
|
|
||||||
"application/vnd.oasis.opendocument.presentation",
|
|
||||||
"application/vnd.oasis.opendocument.spreadsheet",
|
|
||||||
"image/png",
|
|
||||||
"image/jpeg"
|
|
||||||
]
|
|
||||||
|
|
||||||
def public?
|
def public?
|
||||||
!private?
|
!private?
|
||||||
end
|
end
|
||||||
|
@ -64,28 +47,6 @@ class Champ < ApplicationRecord
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def piece_justificative_file_errors
|
|
||||||
errors = []
|
|
||||||
|
|
||||||
if piece_justificative_file.attached? && piece_justificative_file.previous_changes.present?
|
|
||||||
if piece_justificative_file.blob.byte_size > PIECE_JUSTIFICATIVE_FILE_MAX_SIZE
|
|
||||||
errors << "Le fichier #{piece_justificative_file.filename.to_s} est trop lourd, il doit faire au plus #{PIECE_JUSTIFICATIVE_FILE_MAX_SIZE.to_s(:human_size, precision: 2)}"
|
|
||||||
end
|
|
||||||
|
|
||||||
if !piece_justificative_file.blob.content_type.in?(PIECE_JUSTIFICATIVE_FILE_ACCEPTED_FORMATS)
|
|
||||||
errors << "Le fichier #{piece_justificative_file.filename.to_s} est dans un format que nous n'acceptons pas"
|
|
||||||
end
|
|
||||||
|
|
||||||
# FIXME: add Clamav check
|
|
||||||
end
|
|
||||||
|
|
||||||
if errors.present?
|
|
||||||
piece_justificative_file.purge
|
|
||||||
end
|
|
||||||
|
|
||||||
errors
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def string_value
|
def string_value
|
||||||
|
|
|
@ -1,10 +1,49 @@
|
||||||
class Champs::PieceJustificativeChamp < Champ
|
class Champs::PieceJustificativeChamp < Champ
|
||||||
after_commit :create_virus_scan
|
after_commit :create_virus_scan
|
||||||
|
|
||||||
|
PIECE_JUSTIFICATIVE_FILE_MAX_SIZE = 200.megabytes
|
||||||
|
|
||||||
|
PIECE_JUSTIFICATIVE_FILE_ACCEPTED_FORMATS = [
|
||||||
|
"application/pdf",
|
||||||
|
"application/msword",
|
||||||
|
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||||
|
"application/vnd.ms-excel",
|
||||||
|
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||||
|
"application/vnd.ms-powerpoint",
|
||||||
|
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
||||||
|
"application/vnd.oasis.opendocument.text",
|
||||||
|
"application/vnd.oasis.opendocument.presentation",
|
||||||
|
"application/vnd.oasis.opendocument.spreadsheet",
|
||||||
|
"image/png",
|
||||||
|
"image/jpeg"
|
||||||
|
]
|
||||||
|
|
||||||
def mandatory_and_blank?
|
def mandatory_and_blank?
|
||||||
mandatory? && !piece_justificative_file.attached?
|
mandatory? && !piece_justificative_file.attached?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def piece_justificative_file_errors
|
||||||
|
errors = []
|
||||||
|
|
||||||
|
if piece_justificative_file.attached? && piece_justificative_file.previous_changes.present?
|
||||||
|
if piece_justificative_file.blob.byte_size > PIECE_JUSTIFICATIVE_FILE_MAX_SIZE
|
||||||
|
errors << "Le fichier #{piece_justificative_file.filename.to_s} est trop lourd, il doit faire au plus #{PIECE_JUSTIFICATIVE_FILE_MAX_SIZE.to_s(:human_size, precision: 2)}"
|
||||||
|
end
|
||||||
|
|
||||||
|
if !piece_justificative_file.blob.content_type.in?(PIECE_JUSTIFICATIVE_FILE_ACCEPTED_FORMATS)
|
||||||
|
errors << "Le fichier #{piece_justificative_file.filename.to_s} est dans un format que nous n'acceptons pas"
|
||||||
|
end
|
||||||
|
|
||||||
|
# FIXME: add Clamav check
|
||||||
|
end
|
||||||
|
|
||||||
|
if errors.present?
|
||||||
|
piece_justificative_file.purge
|
||||||
|
end
|
||||||
|
|
||||||
|
errors
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def create_virus_scan
|
def create_virus_scan
|
||||||
|
|
Loading…
Reference in a new issue