trabajo-afectivo/db/migrate/20220124101834_setting_updates2.rb

73 lines
2.6 KiB
Ruby

# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
class SettingUpdates2 < ActiveRecord::Migration[6.0]
def change # rubocop:disable Metrics/AbcSize
return if !Setting.exists?(name: 'system_init_done')
settings_update = [
{
title: 'Ticket Last Contact Behaviour',
name: 'ticket_last_contact_behaviour',
description: 'Defines how the last customer contact time of tickets should be calculated.',
options: {
form: [
{
display: '',
null: true,
name: 'ticket_last_contact_behaviour',
tag: 'select',
translate: true,
options: {
'based_on_customer_reaction' => 'Use the time of the very last customer article.',
'check_if_agent_already_replied' => 'Use the start time of the last customer thread (which may consist of multiple articles).',
},
},
],
},
},
{
title: 'Sender based on Reply-To header',
name: 'postmaster_sender_based_on_reply_to',
description: 'Set/overwrite sender/from of email based on "Reply-To" header. Useful to set correct customer if email is received from a third-party system on behalf of a customer.',
options: {
form: [
{
display: '',
null: true,
name: 'postmaster_sender_based_on_reply_to',
tag: 'select',
options: {
'' => '-',
'as_sender_of_email' => 'Take Reply-To header as sender/from of email.',
'as_sender_of_email_use_from_realname' => 'Take Reply-To header as sender/from of email and use the real name of origin from.',
},
},
],
},
},
]
settings_update.each do |setting|
fetched_setting = Setting.find_by(name: setting[:name])
next if !fetched_setting
if setting[:title]
# "Updating title of #{setting[:name]} to #{setting[:title]}"
fetched_setting.title = setting[:title]
end
if setting[:description]
# "Updating description of #{setting[:name]} to #{setting[:description]}"
fetched_setting.description = setting[:description]
end
if setting[:options]
# "Updating description of #{setting[:name]} to #{setting[:description]}"
fetched_setting.options = setting[:options]
end
fetched_setting.save!
end
end
end