Added support to ignore system id for follow up checks.
This commit is contained in:
parent
4c703fb38e
commit
cef163fcc0
5 changed files with 129 additions and 0 deletions
|
@ -81,6 +81,10 @@ module Ticket::Number::Date
|
||||||
ticket_hook_divider = Setting.get('ticket_hook_divider') || ''
|
ticket_hook_divider = Setting.get('ticket_hook_divider') || ''
|
||||||
ticket = nil
|
ticket = nil
|
||||||
|
|
||||||
|
if Setting.get('ticket_number_ignore_system_id') == true
|
||||||
|
system_id = ''
|
||||||
|
end
|
||||||
|
|
||||||
# probe format
|
# probe format
|
||||||
string.scan(/#{Regexp.quote(ticket_hook)}#{Regexp.quote(ticket_hook_divider)}(\d{4,10}#{system_id}\d{2,40})/i) do
|
string.scan(/#{Regexp.quote(ticket_hook)}#{Regexp.quote(ticket_hook_divider)}(\d{4,10}#{system_id}\d{2,40})/i) do
|
||||||
ticket = Ticket.find_by(number: $1)
|
ticket = Ticket.find_by(number: $1)
|
||||||
|
|
|
@ -78,6 +78,10 @@ module Ticket::Number::Increment
|
||||||
ticket_hook_divider = Setting.get('ticket_hook_divider') || ''
|
ticket_hook_divider = Setting.get('ticket_hook_divider') || ''
|
||||||
ticket = nil
|
ticket = nil
|
||||||
|
|
||||||
|
if Setting.get('ticket_number_ignore_system_id') == true
|
||||||
|
system_id = ''
|
||||||
|
end
|
||||||
|
|
||||||
# probe format
|
# probe format
|
||||||
string.scan(/#{Regexp.quote(ticket_hook)}#{Regexp.quote(ticket_hook_divider)}(#{system_id}\d{2,48})/i) do
|
string.scan(/#{Regexp.quote(ticket_hook)}#{Regexp.quote(ticket_hook_divider)}(#{system_id}\d{2,48})/i) do
|
||||||
ticket = Ticket.find_by(number: $1)
|
ticket = Ticket.find_by(number: $1)
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
class SettingTicketNumberIgnoreSystemIdSupport < ActiveRecord::Migration[4.2]
|
||||||
|
def up
|
||||||
|
|
||||||
|
# return if it's a new setup
|
||||||
|
return if !Setting.find_by(name: 'system_init_done')
|
||||||
|
|
||||||
|
Setting.create_if_not_exists(
|
||||||
|
title: 'Ticket Number ignore system_id',
|
||||||
|
name: 'ticket_number_ignore_system_id',
|
||||||
|
area: 'Ticket::Core',
|
||||||
|
description: '-',
|
||||||
|
options: {
|
||||||
|
form: [
|
||||||
|
{
|
||||||
|
display: 'Ignore system_id',
|
||||||
|
null: true,
|
||||||
|
name: 'ticket_number_ignore_system_id',
|
||||||
|
tag: 'boolean',
|
||||||
|
options: {
|
||||||
|
true => 'yes',
|
||||||
|
false => 'no',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
state: {
|
||||||
|
ticket_number_ignore_system_id: false
|
||||||
|
},
|
||||||
|
preferences: {
|
||||||
|
permission: ['admin.ticket'],
|
||||||
|
hidden: true,
|
||||||
|
},
|
||||||
|
frontend: false
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -1672,6 +1672,34 @@ Setting.create_if_not_exists(
|
||||||
},
|
},
|
||||||
frontend: false
|
frontend: false
|
||||||
)
|
)
|
||||||
|
Setting.create_if_not_exists(
|
||||||
|
title: 'Ticket Number ignore system_id',
|
||||||
|
name: 'ticket_number_ignore_system_id',
|
||||||
|
area: 'Ticket::Core',
|
||||||
|
description: '-',
|
||||||
|
options: {
|
||||||
|
form: [
|
||||||
|
{
|
||||||
|
display: 'Ignore system_id',
|
||||||
|
null: true,
|
||||||
|
name: 'ticket_number_ignore_system_id',
|
||||||
|
tag: 'boolean',
|
||||||
|
options: {
|
||||||
|
true => 'yes',
|
||||||
|
false => 'no',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
state: {
|
||||||
|
ticket_number_ignore_system_id: false
|
||||||
|
},
|
||||||
|
preferences: {
|
||||||
|
permission: ['admin.ticket'],
|
||||||
|
hidden: true,
|
||||||
|
},
|
||||||
|
frontend: false
|
||||||
|
)
|
||||||
|
|
||||||
Setting.create_if_not_exists(
|
Setting.create_if_not_exists(
|
||||||
title: 'Enable Ticket creation',
|
title: 'Enable Ticket creation',
|
||||||
|
|
|
@ -58,6 +58,33 @@ class TicketNumberTest < ActiveSupport::TestCase
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test 'number check' do
|
||||||
|
Setting.set('ticket_number_increment', { checksum: false, min_size: 5 })
|
||||||
|
ticket = Ticket.create!(
|
||||||
|
title: 'test 1',
|
||||||
|
group: Group.lookup(name: 'Users'),
|
||||||
|
customer_id: 2,
|
||||||
|
state: Ticket::State.lookup(name: 'new'),
|
||||||
|
priority: Ticket::Priority.lookup(name: '2 normal'),
|
||||||
|
updated_by_id: 1,
|
||||||
|
created_by_id: 1,
|
||||||
|
)
|
||||||
|
subject = ticket.subject_build(ticket.title)
|
||||||
|
|
||||||
|
ticket_check = Ticket::Number.check(subject)
|
||||||
|
assert_equal(ticket.id, ticket_check.id)
|
||||||
|
|
||||||
|
Setting.set('system_id', 999)
|
||||||
|
|
||||||
|
ticket_check = Ticket::Number.check(subject)
|
||||||
|
assert_not(ticket_check)
|
||||||
|
|
||||||
|
Setting.set('ticket_number_ignore_system_id', true)
|
||||||
|
|
||||||
|
ticket_check = Ticket::Number.check(subject)
|
||||||
|
assert_equal(ticket.id, ticket_check.id)
|
||||||
|
end
|
||||||
|
|
||||||
test 'date' do
|
test 'date' do
|
||||||
Setting.set('ticket_number', 'Ticket::Number::Date')
|
Setting.set('ticket_number', 'Ticket::Number::Date')
|
||||||
Setting.set('ticket_number_date', { checksum: false })
|
Setting.set('ticket_number_date', { checksum: false })
|
||||||
|
@ -103,4 +130,33 @@ class TicketNumberTest < ActiveSupport::TestCase
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test 'date check' do
|
||||||
|
Setting.set('ticket_number', 'Ticket::Number::Date')
|
||||||
|
Setting.set('ticket_number_date', { checksum: false })
|
||||||
|
|
||||||
|
ticket = Ticket.create!(
|
||||||
|
title: 'test 1',
|
||||||
|
group: Group.lookup(name: 'Users'),
|
||||||
|
customer_id: 2,
|
||||||
|
state: Ticket::State.lookup(name: 'new'),
|
||||||
|
priority: Ticket::Priority.lookup(name: '2 normal'),
|
||||||
|
updated_by_id: 1,
|
||||||
|
created_by_id: 1,
|
||||||
|
)
|
||||||
|
subject = ticket.subject_build(ticket.title)
|
||||||
|
|
||||||
|
ticket_check = Ticket::Number.check(subject)
|
||||||
|
assert_equal(ticket.id, ticket_check.id)
|
||||||
|
|
||||||
|
Setting.set('system_id', 999)
|
||||||
|
|
||||||
|
ticket_check = Ticket::Number.check(subject)
|
||||||
|
assert_not(ticket_check)
|
||||||
|
|
||||||
|
Setting.set('ticket_number_ignore_system_id', true)
|
||||||
|
|
||||||
|
ticket_check = Ticket::Number.check(subject)
|
||||||
|
assert_equal(ticket.id, ticket_check.id)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue