correct(export): la creation d'archive pour un groupe d'instructeur, avec des filtres differents et identique doit etre consistante
This commit is contained in:
parent
cf51be85e0
commit
50c43f4819
2 changed files with 10 additions and 7 deletions
|
@ -89,13 +89,12 @@ class Export < ApplicationRecord
|
||||||
.create_or_find_by(format: format,
|
.create_or_find_by(format: format,
|
||||||
time_span_type: time_span_type,
|
time_span_type: time_span_type,
|
||||||
statut: statut,
|
statut: statut,
|
||||||
key: generate_cache_key(groupe_instructeurs.map(&:id), procedure_presentation&.id))
|
key: generate_cache_key(groupe_instructeurs.map(&:id), procedure_presentation))
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.find_for_groupe_instructeurs(groupe_instructeurs_ids, procedure_presentation)
|
def self.find_for_groupe_instructeurs(groupe_instructeurs_ids, procedure_presentation)
|
||||||
exports = if procedure_presentation.present?
|
exports = if procedure_presentation.present?
|
||||||
where(key: generate_cache_key(groupe_instructeurs_ids))
|
where(key: generate_cache_key(groupe_instructeurs_ids, procedure_presentation))
|
||||||
.or(where(key: generate_cache_key(groupe_instructeurs_ids, procedure_presentation.id)))
|
|
||||||
else
|
else
|
||||||
where(key: generate_cache_key(groupe_instructeurs_ids))
|
where(key: generate_cache_key(groupe_instructeurs_ids))
|
||||||
end
|
end
|
||||||
|
@ -121,9 +120,13 @@ class Export < ApplicationRecord
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.generate_cache_key(groupe_instructeurs_ids, procedure_presentation_id = nil)
|
def self.generate_cache_key(groupe_instructeurs_ids, procedure_presentation = nil)
|
||||||
if procedure_presentation_id.present?
|
if procedure_presentation.present?
|
||||||
"#{groupe_instructeurs_ids.sort.join('-')}--#{procedure_presentation_id}"
|
[
|
||||||
|
groupe_instructeurs_ids.sort.join('-'),
|
||||||
|
procedure_presentation.id,
|
||||||
|
Digest::MD5.hexdigest(procedure_presentation.snapshot.slice('filters', 'sort').to_s)
|
||||||
|
].join('--')
|
||||||
else
|
else
|
||||||
groupe_instructeurs_ids.sort.join('-')
|
groupe_instructeurs_ids.sort.join('-')
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,7 +6,7 @@ FactoryBot.define do
|
||||||
groupe_instructeurs { [association(:groupe_instructeur)] }
|
groupe_instructeurs { [association(:groupe_instructeur)] }
|
||||||
|
|
||||||
after(:build) do |export, _evaluator|
|
after(:build) do |export, _evaluator|
|
||||||
export.key = Export.generate_cache_key(export.groupe_instructeurs.map(&:id), export.procedure_presentation&.id)
|
export.key = Export.generate_cache_key(export.groupe_instructeurs.map(&:id), export.procedure_presentation)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue