23 lines
591 B
Ruby
23 lines
591 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Maintenance
|
||
|
class T20241216removeNonUniqueChampsTask < MaintenanceTasks::Task
|
||
|
# Documentation: cette tâche supprime les champs en double dans un dossier
|
||
|
|
||
|
include RunnableOnDeployConcern
|
||
|
include StatementsHelpersConcern
|
||
|
|
||
|
def collection
|
||
|
Dossier.state_not_brouillon.includes(champs: true)
|
||
|
end
|
||
|
|
||
|
def process(dossier)
|
||
|
dossier.champs.filter { _1.row_id.nil? }.group_by(&:public_id).each do |_, champs|
|
||
|
if champs.size > 1
|
||
|
champs.sort_by(&:id)[1..].each(&:destroy)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|