trabajo-afectivo/db/migrate/20201202080338_issue3270_selector_update.rb

45 lines
1.2 KiB
Ruby

# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
class Issue3270SelectorUpdate < ActiveRecord::Migration[5.2]
def change
# return if it's a new setup
return if !Setting.exists?(name: 'system_init_done')
Overview.find_each do |overview|
fix_selector(overview)
end
Trigger.find_each do |trigger|
fix_selector(trigger)
end
Job.find_each do |job|
fix_selector(job)
end
end
def fix_selector(object)
fixed = false
object.condition.each do |_attribute, attribute_condition|
next if attribute_condition['operator'] != 'within next (relative)' && attribute_condition['operator'] != 'within last (relative)'
attribute_condition['operator'] = if attribute_condition['operator'] == 'within next (relative)'
'till (relative)'
else
'from (relative)'
end
fixed = true
end
return if !fixed
save(object)
end
def save(object)
object.save
rescue => e
Rails.logger.error "Migration Issue3270SelectorUpdate failed: #{object.class} - #{object.id} - #{e.inspect}."
end
end