demarches-normaliennes/app/jobs/migrations/batch_update_datetime_values_job.rb
Damien Le Thiec 5e26acb0e1
Make date and datetime prefillable (#8304)
* Make date and datetime prefillable

* Format in ISO8601 format
2023-01-12 17:42:02 +01:00

24 lines
696 B
Ruby

class Migrations::BatchUpdateDatetimeValuesJob < ApplicationJob
def perform(ids)
Champs::DatetimeChamp.where(id: ids).each do |datetime_champ|
current_value_in_time = Time.zone.parse(datetime_champ.value)
if current_value_in_time.present?
datetime_champ.update_columns(value: current_value_in_time.iso8601)
else
update_value_to_nil_if_possible(datetime_champ)
end
rescue TypeError
update_value_to_nil_if_possible(datetime_champ)
end
end
private
def update_value_to_nil_if_possible(datetime_champ)
return if datetime_champ.value.nil?
datetime_champ.update_columns(value: nil) unless datetime_champ.required?
end
end