44 lines
1.2 KiB
Ruby
44 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
|