demarches-normaliennes/app/jobs/migrations/backfill_dossier_repetition_job.rb

18 lines
567 B
Ruby
Raw Normal View History

class Migrations::BackfillDossierRepetitionJob < ApplicationJob
def perform(dossier_ids)
Dossier.where(id: dossier_ids)
.includes(:champs, revision: :types_de_champ)
.find_each do |dossier|
dossier
.revision
.types_de_champ
.filter do |type_de_champ|
type_de_champ.type_champ == 'repetition' && dossier.champs.none? { _1.stable_id == type_de_champ.stable_id }
end
.each do |type_de_champ|
dossier.champs << type_de_champ.build_champ
end
end
end
end