class PieceJustificative < ApplicationRecord belongs_to :dossier, touch: true belongs_to :type_de_piece_justificative has_one :commentaire belongs_to :user delegate :api_entreprise, :libelle, :order_place, to: :type_de_piece_justificative alias_attribute :type, :type_de_piece_justificative_id mount_uploader :content, PieceJustificativeUploader validates :content, :file_size => { :maximum => 20.megabytes } validates :content, presence: true, allow_blank: false, allow_nil: false scope :updated_since?, -> (date) { where('pieces_justificatives.updated_at > ?', date) } def empty? content.blank? end def libelle if type_de_piece_justificative.nil? return content.to_s else type_de_piece_justificative.libelle end end def content_url if content.url.present? if Flipflop.remote_storage? (RemoteDownloader.new content.filename).url else (LocalDownloader.new content.path, (type_de_piece_justificative.nil? ? content.original_filename : type_de_piece_justificative.libelle)).url end end end def self.accept_format " 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 " end end