31 lines
1.1 KiB
Ruby
31 lines
1.1 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Maintenance
|
||
|
# PR: 10774
|
||
|
# why: postgres does not support integer greater than ProcedurePresentation::PG_INTEGER_MAX_VALUE)
|
||
|
# it occures when user copypaste the dossier id twice (like missed copy paste,paste)
|
||
|
# once this huge integer is saved on procedure presentation, page with this filter can't be loaded
|
||
|
# when: run this migration when it appears in your maintenance tasks list, this file fix the data and we added some validations too
|
||
|
class CleanInvalidProcedurePresentationTask < MaintenanceTasks::Task
|
||
|
def collection
|
||
|
ProcedurePresentation.all
|
||
|
end
|
||
|
|
||
|
def process(element)
|
||
|
element.filters = element.filters.transform_values do |filters_by_status|
|
||
|
filters_by_status.reject do |filter|
|
||
|
filter.is_a?(Hash) &&
|
||
|
filter['column'] == 'id' &&
|
||
|
(filter['value']&.to_i&. >= ProcedurePresentation::PG_INTEGER_MAX_VALUE)
|
||
|
end
|
||
|
end
|
||
|
element.save
|
||
|
end
|
||
|
|
||
|
def count
|
||
|
# Optionally, define the number of rows that will be iterated over
|
||
|
# This is used to track the task's progress
|
||
|
end
|
||
|
end
|
||
|
end
|