feat(champ): has_one_attached => has_many_attached piece_justificative_file

This commit is contained in:
Colin Darie 2022-10-20 10:14:47 +02:00
parent 2cdbcbf0b6
commit 91f4971df2
5 changed files with 11 additions and 11 deletions

View file

@ -23,7 +23,7 @@ class Champ < ApplicationRecord
belongs_to :dossier, inverse_of: false, touch: true, optional: false belongs_to :dossier, inverse_of: false, touch: true, optional: false
belongs_to :type_de_champ, inverse_of: :champ, optional: false belongs_to :type_de_champ, inverse_of: :champ, optional: false
belongs_to :parent, class_name: 'Champ', optional: true belongs_to :parent, class_name: 'Champ', optional: true
has_one_attached :piece_justificative_file has_many_attached :piece_justificative_file
# We declare champ specific relationships (Champs::CarteChamp, Champs::SiretChamp and Champs::RepetitionChamp) # We declare champ specific relationships (Champs::CarteChamp, Champs::SiretChamp and Champs::RepetitionChamp)
# here because otherwise we can't easily use includes in our queries. # here because otherwise we can't easily use includes in our queries.

View file

@ -261,16 +261,16 @@ class Dossier < ApplicationRecord
includes(champs_public: [ includes(champs_public: [
:type_de_champ, :type_de_champ,
:geo_areas, :geo_areas,
piece_justificative_file_attachment: :blob, piece_justificative_file_attachments: :blob,
champs: [:type_de_champ, piece_justificative_file_attachment: :blob] champs: [:type_de_champ, piece_justificative_file_attachments: :blob]
]) ])
} }
scope :with_annotations, -> { scope :with_annotations, -> {
includes(champs_private: [ includes(champs_private: [
:type_de_champ, :type_de_champ,
:geo_areas, :geo_areas,
piece_justificative_file_attachment: :blob, piece_justificative_file_attachments: :blob,
champs: [:type_de_champ, piece_justificative_file_attachment: :blob] champs: [:type_de_champ, piece_justificative_file_attachments: :blob]
]) ])
} }
scope :for_api, -> { scope :for_api, -> {
@ -279,7 +279,7 @@ class Dossier < ApplicationRecord
.includes(commentaires: { piece_jointe_attachment: :blob }, .includes(commentaires: { piece_jointe_attachment: :blob },
justificatif_motivation_attachment: :blob, justificatif_motivation_attachment: :blob,
attestation: [], attestation: [],
avis: { piece_justificative_file_attachment: :blob }, avis: { piece_justificative_file_attachments: :blob },
traitement: [], traitement: [],
etablissement: [], etablissement: [],
individual: [], individual: [],

View file

@ -35,7 +35,7 @@ class DossierPreloader
end end
def load_dossiers(dossiers, pj_template: false) def load_dossiers(dossiers, pj_template: false)
to_include = [piece_justificative_file_attachment: :blob] to_include = [piece_justificative_file_attachments: :blob]
if pj_template if pj_template
to_include << { type_de_champ: { piece_justificative_template_attachment: :blob } } to_include << { type_de_champ: { piece_justificative_template_attachment: :blob } }

View file

@ -248,9 +248,9 @@ class Procedure < ApplicationRecord
:groupe_instructeurs, :groupe_instructeurs,
dossiers: { dossiers: {
champs_public: [ champs_public: [
piece_justificative_file_attachment: :blob, piece_justificative_file_attachments: :blob,
champs: [ champs: [
piece_justificative_file_attachment: :blob piece_justificative_file_attachments: :blob
] ]
] ]
} }
@ -776,7 +776,7 @@ class Procedure < ApplicationRecord
if dossiers.termine.any? if dossiers.termine.any?
dossiers_sample = dossiers.termine.limit(100) dossiers_sample = dossiers.termine.limit(100)
total_size = Champ total_size = Champ
.includes(piece_justificative_file_attachment: :blob) .includes(piece_justificative_file_attachments: :blob)
.where(type: Champs::PieceJustificativeChamp.to_s, dossier: dossiers_sample) .where(type: Champs::PieceJustificativeChamp.to_s, dossier: dossiers_sample)
.sum('active_storage_blobs.byte_size') .sum('active_storage_blobs.byte_size')

View file

@ -113,7 +113,7 @@ class PiecesJustificativesService
def self.pjs_for_champs(dossiers, for_expert = false) def self.pjs_for_champs(dossiers, for_expert = false)
champs = Champ champs = Champ
.joins(:piece_justificative_file_attachment) .joins(:piece_justificative_file_attachments)
.where(type: "Champs::PieceJustificativeChamp", dossier: dossiers) .where(type: "Champs::PieceJustificativeChamp", dossier: dossiers)
if for_expert if for_expert