Merge pull request #10791 from demarches-simplifiees/clean_virtual_column

Tech: suppression de l'attribut maintenant obsolète `virtual` des données des procédures présentations
This commit is contained in:
Paul Chavard 2024-09-16 13:22:38 +00:00 committed by GitHub
commit dd199eb02d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 49 additions and 0 deletions

View file

@ -0,0 +1,22 @@
# frozen_string_literal: true
namespace :after_party do
desc 'Deployment task: clean_virtual_column_from_procedure_presentation'
task clean_virtual_column_from_procedure_presentation: :environment do
ids = ProcedurePresentation.where("jsonb_typeof(displayed_fields) = 'array' AND EXISTS ( select 1 from jsonb_array_elements(displayed_fields) AS element where element ? 'virtual')").ids
progress = ProgressReport.new(ids.count)
ProcedurePresentation.where(id: ids).find_each do |procedure_presentation|
procedure_presentation.displayed_fields = procedure_presentation.displayed_fields.map do |field|
field.except('virtual')
end
procedure_presentation.save!(validate: false)
progress.inc
end
AfterParty::TaskRecord
.create version: AfterParty::TaskRecorder.new(__FILE__).timestamp
end
end

View file

@ -0,0 +1,27 @@
# frozen_string_literal: true
describe '20240912151317_clean_virtual_column_from_procedure_presentation.rake' do
let(:rake_task) { Rake::Task['after_party:clean_virtual_column_from_procedure_presentation'] }
let(:procedure) { create(:procedure) }
let(:instructeur) { create(:instructeur) }
let(:assign_to) { create(:assign_to, procedure:, instructeur:) }
let!(:procedure_presentation) do
displayed_fields = [{ label: "test1", table: "user", column: "email", virtual: true }]
create(:procedure_presentation, assign_to:, displayed_fields:)
end
before do
rake_task.invoke
procedure_presentation.reload
end
after { rake_task.reenable }
it 'removes the virtual field' do
expect(procedure_presentation.displayed_fields).to eq([{ "column" => "email", "label" => "test1", "table" => "user" }])
end
end