class SettingAddTicketAutoAssignment2 < ActiveRecord::Migration[5.1] def up # return if it's a new setup return if !Setting.find_by(name: 'system_init_done') Setting.create_if_not_exists( title: 'Auto Assigment', name: 'ticket_auto_assignment', area: 'Web::Base', description: 'Enable ticket auto assignment.', options: { form: [ { display: '', null: true, name: 'ticket_auto_assignment', tag: 'boolean', options: { true => 'yes', false => 'no', }, }, ], }, preferences: { authentication: true, permission: ['admin.ticket_auto_assignment'], }, state: false, frontend: true ) Setting.create_if_not_exists( title: 'Time Accounting Selector', name: 'ticket_auto_assignment_selector', area: 'Web::Base', description: 'Enable auto assignment for following matching tickets.', options: { form: [ {}, ], }, preferences: { authentication: true, permission: ['admin.ticket_auto_assignment'], }, state: { condition: { 'ticket.state_id' => { operator: 'is', value: Ticket::State.by_category(:work_on).pluck(:id) } } }, frontend: true ) Setting.create_or_update( title: 'Time Accounting Selector', name: 'ticket_auto_assignment_user_ids_ignore', area: 'Web::Base', description: 'Define an exception of "automatic assignment" for certain users (e.g. executives).', options: { form: [ {}, ], }, preferences: { authentication: true, permission: ['admin.ticket_auto_assignment'], }, state: [], frontend: true ) end end