Renamed tickets.ticket_priority to tickets.priority, tickets.ticket_state to ticket.state, ticket_articles.ticket_article_sender to ticket_articles.sender and ticket_articles.ticket_article_type to ticket_articles.type.

This commit is contained in:
Martin Edenhofer 2014-06-09 00:01:20 +02:00
parent 569d6e0233
commit 065fbb2bba
33 changed files with 613 additions and 600 deletions

View file

@ -145,8 +145,8 @@ class TicketsController < ApplicationController
# open tickets by customer # open tickets by customer
ticket_list = Ticket.where( ticket_list = Ticket.where(
:customer_id => ticket.customer_id, :customer_id => ticket.customer_id,
:ticket_state_id => Ticket::State.by_category( 'open' ) :state_id => Ticket::State.by_category( 'open' )
) )
.where( 'id != ?', [ ticket.id ] ) .where( 'id != ?', [ ticket.id ] )
.order('created_at DESC') .order('created_at DESC')

View file

@ -364,16 +364,16 @@ class Channel::EmailParser
# set ticket state to open if not new # set ticket state to open if not new
if ticket if ticket
ticket_state = Ticket::State.find( ticket.ticket_state_id ) state = Ticket::State.find( ticket.state_id )
ticket_state_type = Ticket::StateType.find( ticket_state.state_type_id ) state_type = Ticket::StateType.find( state.state_type_id )
# if tickte is merged, find linked ticket # if tickte is merged, find linked ticket
if ticket_state_type.name == 'merged' if state_type.name == 'merged'
end end
if ticket_state_type.name != 'new' if state_type.name != 'new'
ticket.ticket_state = Ticket::State.where( :name => 'open' ).first ticket.state = Ticket::State.where( :name => 'open' ).first
ticket.save ticket.save
end end
end end
@ -386,8 +386,8 @@ class Channel::EmailParser
:group_id => channel[:group_id] || 1, :group_id => channel[:group_id] || 1,
:customer_id => user.id, :customer_id => user.id,
:title => mail[:subject] || '', :title => mail[:subject] || '',
:ticket_state_id => Ticket::State.where( :name => 'new' ).first.id, :state_id => Ticket::State.where( :name => 'new' ).first.id,
:ticket_priority_id => Ticket::Priority.where( :name => '2 normal' ).first.id, :priority_id => Ticket::Priority.where( :name => '2 normal' ).first.id,
) )
set_attributes_by_x_headers( ticket, 'ticket', mail ) set_attributes_by_x_headers( ticket, 'ticket', mail )
@ -400,16 +400,16 @@ class Channel::EmailParser
# set attributes # set attributes
article = Ticket::Article.new( article = Ticket::Article.new(
:ticket_id => ticket.id, :ticket_id => ticket.id,
:ticket_article_type_id => Ticket::Article::Type.where( :name => 'email' ).first.id, :type_id => Ticket::Article::Type.where( :name => 'email' ).first.id,
:ticket_article_sender_id => Ticket::Article::Sender.where( :name => 'Customer' ).first.id, :sender_id => Ticket::Article::Sender.where( :name => 'Customer' ).first.id,
:body => mail[:body], :body => mail[:body],
:from => mail[:from], :from => mail[:from],
:to => mail[:to], :to => mail[:to],
:cc => mail[:cc], :cc => mail[:cc],
:subject => mail[:subject], :subject => mail[:subject],
:message_id => mail[:message_id], :message_id => mail[:message_id],
:internal => false, :internal => false,
) )
# x-headers lookup # x-headers lookup

View file

@ -195,8 +195,8 @@ class Channel::Twitter2
if @article_type == 'twitter direct-message' if @article_type == 'twitter direct-message'
ticket = Ticket.where( :customer_id => user.id ).first ticket = Ticket.where( :customer_id => user.id ).first
if ticket if ticket
ticket_state_type = Ticket::StateType.where( ticket.ticket_state.state_type_id ) state_type = Ticket::StateType.where( ticket.state.state_type_id )
if ticket_state_type.name == 'closed' || ticket_state_type.name == 'closed' if state_type.name == 'closed' || state_type.name == 'closed'
ticket = nil ticket = nil
end end
end end
@ -218,11 +218,11 @@ class Channel::Twitter2
priority_id = priority.id priority_id = priority.id
end end
ticket = Ticket.create( ticket = Ticket.create(
:group_id => group_id, :group_id => group_id,
:customer_id => user.id, :customer_id => user.id,
:title => tweet.text[0,40], :title => tweet.text[0,40],
:ticket_state_id => state_id, :state_id => state_id,
:ticket_priority_id => priority_id, :priority_id => priority_id,
) )
end end
@ -236,8 +236,8 @@ class Channel::Twitter2
return article if article return article if article
# set ticket state to open if not new # set ticket state to open if not new
if ticket.ticket_state.name != 'new' if ticket.state.name != 'new'
ticket.ticket_state = Ticket::State.where( :name => 'open' ).first ticket.state = Ticket::State.where( :name => 'open' ).first
ticket.save ticket.save
end end
@ -248,14 +248,14 @@ class Channel::Twitter2
end end
article = Ticket::Article.create( article = Ticket::Article.create(
:ticket_id => ticket.id, :ticket_id => ticket.id,
:ticket_article_type_id => Ticket::Article::Type.where( :name => @article_type ).first.id, :type_id => Ticket::Article::Type.where( :name => @article_type ).first.id,
:ticket_article_sender_id => Ticket::Article::Sender.where( :name => 'Customer' ).first.id, :sender_id => Ticket::Article::Sender.where( :name => 'Customer' ).first.id,
:body => tweet.text, :body => tweet.text,
:from => sender.name, :from => sender.name,
:to => to, :to => to,
:message_id => tweet.id, :message_id => tweet.id,
:internal => false, :internal => false,
) )
end end

View file

@ -21,7 +21,7 @@ add a new history entry for an object
History.add( History.add(
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:o_id => ticket.id, :o_id => ticket.id,
:id_to => 3, :id_to => 3,
:id_from => 2, :id_from => 2,

View file

@ -2,8 +2,8 @@
class Network < ApplicationModel class Network < ApplicationModel
# belongs_to :group # belongs_to :group
# belongs_to :ticket_state, :class_name => 'Ticket::State' # belongs_to :state, :class_name => 'Ticket::State'
# belongs_to :ticket_priority, :class_name => 'Ticket::Priority' # belongs_to :priority, :class_name => 'Ticket::Priority'
class Category < ApplicationModel class Category < ApplicationModel
self.table_name = 'network_categories' self.table_name = 'network_categories'

View file

@ -9,12 +9,12 @@ class Observer::Ticket::Article::CommunicateEmail < ActiveRecord::Observer
return if Setting.get('import_mode') return if Setting.get('import_mode')
# if sender is customer, do not communication # if sender is customer, do not communication
sender = Ticket::Article::Sender.lookup( :id => record.ticket_article_sender_id ) sender = Ticket::Article::Sender.lookup( :id => record.sender_id )
return 1 if sender == nil return 1 if sender == nil
return 1 if sender['name'] == 'Customer' return 1 if sender['name'] == 'Customer'
# only apply on emails # only apply on emails
type = Ticket::Article::Type.lookup( :id => record.ticket_article_type_id ) type = Ticket::Article::Type.lookup( :id => record.type_id )
return if type['name'] != 'email' return if type['name'] != 'email'
# send background job # send background job

View file

@ -9,12 +9,12 @@ class Observer::Ticket::Article::CommunicateFacebook < ActiveRecord::Observer
return if Setting.get('import_mode') return if Setting.get('import_mode')
# if sender is customer, do not communication # if sender is customer, do not communication
sender = Ticket::Article::Sender.lookup( :id => record.ticket_article_sender_id ) sender = Ticket::Article::Sender.lookup( :id => record.sender_id )
return 1 if sender == nil return 1 if sender == nil
return 1 if sender['name'] == 'Customer' return 1 if sender['name'] == 'Customer'
# only apply on emails # only apply on emails
type = Ticket::Article::Type.lookup( :id => record.ticket_article_type_id ) type = Ticket::Article::Type.lookup( :id => record.type_id )
return if type['name'] != 'facebook' return if type['name'] != 'facebook'
a = Channel::Facebook.new a = Channel::Facebook.new

View file

@ -9,12 +9,12 @@ class Observer::Ticket::Article::CommunicateTwitter < ActiveRecord::Observer
return if Setting.get('import_mode') return if Setting.get('import_mode')
# if sender is customer, do not communication # if sender is customer, do not communication
sender = Ticket::Article::Sender.lookup( :id => record.ticket_article_sender_id ) sender = Ticket::Article::Sender.lookup( :id => record.sender_id )
return 1 if sender == nil return 1 if sender == nil
return 1 if sender['name'] == 'Customer' return 1 if sender['name'] == 'Customer'
# only apply on tweets # only apply on tweets
type = Ticket::Article::Type.lookup( :id => record.ticket_article_type_id ) type = Ticket::Article::Type.lookup( :id => record.type_id )
return if type['name'] != 'twitter direct-message' && type['name'] != 'twitter status' return if type['name'] != 'twitter direct-message' && type['name'] != 'twitter status'
a = Channel::Twitter2.new a = Channel::Twitter2.new

View file

@ -9,12 +9,12 @@ class Observer::Ticket::Article::FillupFromEmail < ActiveRecord::Observer
return if Setting.get('import_mode') return if Setting.get('import_mode')
# if sender is customer, do not change anything # if sender is customer, do not change anything
sender = Ticket::Article::Sender.lookup( :id => record.ticket_article_sender_id ) sender = Ticket::Article::Sender.lookup( :id => record.sender_id )
return if sender == nil return if sender == nil
return if sender['name'] == 'Customer' return if sender['name'] == 'Customer'
# set email attributes # set email attributes
type = Ticket::Article::Type.lookup( :id => record.ticket_article_type_id ) type = Ticket::Article::Type.lookup( :id => record.type_id )
return if type['name'] != 'email' return if type['name'] != 'email'
# set subject if empty # set subject if empty

View file

@ -9,7 +9,7 @@ class Observer::Ticket::Article::FillupFromGeneral < ActiveRecord::Observer
return if Setting.get('import_mode') return if Setting.get('import_mode')
# if sender is customer, do not change anything # if sender is customer, do not change anything
sender = Ticket::Article::Sender.lookup( :id => record.ticket_article_sender_id ) sender = Ticket::Article::Sender.lookup( :id => record.sender_id )
return if sender == nil return if sender == nil
return if sender['name'] == 'Customer' return if sender['name'] == 'Customer'

View file

@ -9,8 +9,8 @@ class Observer::Ticket::ArticleSenderType < ActiveRecord::Observer
count = Ticket::Article.where( :ticket_id => record.ticket_id ).count count = Ticket::Article.where( :ticket_id => record.ticket_id ).count
return if count > 1 return if count > 1
record.ticket.create_article_type_id = record.ticket_article_type_id record.ticket.create_article_type_id = record.type_id
record.ticket.create_article_sender_id = record.ticket_article_sender_id record.ticket.create_article_sender_id = record.sender_id
# save ticket # save ticket
record.ticket.save record.ticket.save

View file

@ -22,9 +22,9 @@ class Observer::Ticket::CloseTime < ActiveRecord::Observer
return true if record.close_time return true if record.close_time
# check if ticket is closed now # check if ticket is closed now
ticket_state = Ticket::State.lookup( :id => record.ticket_state_id ) state = Ticket::State.lookup( :id => record.state_id )
ticket_state_type = Ticket::StateType.lookup( :id => ticket_state.state_type_id ) state_type = Ticket::StateType.lookup( :id => state.state_type_id )
return true if ticket_state_type.name != 'closed' return true if state_type.name != 'closed'
# set close_time # set close_time
record.close_time = Time.now record.close_time = Time.now

View file

@ -13,8 +13,8 @@ class Observer::Ticket::FirstResponse < ActiveRecord::Observer
return true if record.internal return true if record.internal
# if sender is not agent # if sender is not agent
sender = Ticket::Article::Sender.lookup( :id => record.ticket_article_sender_id ) sender = Ticket::Article::Sender.lookup( :id => record.sender_id )
type = Ticket::Article::Type.lookup( :id => record.ticket_article_type_id ) type = Ticket::Article::Type.lookup( :id => record.type_id )
if sender.name != 'Agent' && type.name !~ /^phone/ if sender.name != 'Agent' && type.name !~ /^phone/
return true return true
end end

View file

@ -10,10 +10,10 @@ class Observer::Ticket::LastContact < ActiveRecord::Observer
return true if record.internal return true if record.internal
# if article is a message to customer # if article is a message to customer
return true if !Ticket::Article::Type.lookup( :id => record.ticket_article_type_id ).communication return true if !Ticket::Article::Type.lookup( :id => record.type_id ).communication
# if sender is not customer # if sender is not customer
sender = Ticket::Article::Sender.lookup( :id => record.ticket_article_sender_id ) sender = Ticket::Article::Sender.lookup( :id => record.sender_id )
if sender.name == 'Customer' if sender.name == 'Customer'
# check if last communication is done by agent, else do not set last_contact_customer # check if last communication is done by agent, else do not set last_contact_customer

View file

@ -49,11 +49,11 @@ class Observer::Ticket::Notification < ActiveRecord::Observer
:subject => 'New Ticket (#{ticket.title})', :subject => 'New Ticket (#{ticket.title})',
:body => 'Hi #{recipient.firstname}, :body => 'Hi #{recipient.firstname},
a new Ticket (#{ticket.title}) via i18n(#{article.ticket_article_type.name}). a new Ticket (#{ticket.title}) via i18n(#{article.type.name}).
Group: #{ticket.group.name} Group: #{ticket.group.name}
Owner: #{ticket.owner.firstname} #{ticket.owner.lastname} Owner: #{ticket.owner.firstname} #{ticket.owner.lastname}
State: i18n(#{ticket.ticket_state.name}) State: i18n(#{ticket.state.name})
From: #{article.from} From: #{article.from}
<snip> <snip>
@ -72,7 +72,7 @@ class Observer::Ticket::Notification < ActiveRecord::Observer
if event[:name] == 'Ticket' && event[:type] == 'create' if event[:name] == 'Ticket' && event[:type] == 'create'
# only for incoming emails # only for incoming emails
next if article.ticket_article_type.name != 'email' next if article.type.name != 'email'
puts 'send new ticket notify to customer' puts 'send new ticket notify to customer'
send_notify( send_notify(
@ -107,7 +107,7 @@ class Observer::Ticket::Notification < ActiveRecord::Observer
puts 'send new ticket::article notify' puts 'send new ticket::article notify'
if article.ticket_article_sender.name == 'Customer' if article.sender.name == 'Customer'
send_notify( send_notify(
{ {
:event => event, :event => event,
@ -115,11 +115,11 @@ class Observer::Ticket::Notification < ActiveRecord::Observer
:subject => 'Follow Up (#{ticket.title})', :subject => 'Follow Up (#{ticket.title})',
:body => 'Hi #{recipient.firstname}, :body => 'Hi #{recipient.firstname},
a follow Up (#{ticket.title}) via i18n(#{article.ticket_article_type.name}). a follow Up (#{ticket.title}) via i18n(#{article.type.name}).
Group: #{ticket.group.name} Group: #{ticket.group.name}
Owner: #{ticket.owner.firstname} #{ticket.owner.lastname} Owner: #{ticket.owner.firstname} #{ticket.owner.lastname}
State: i18n(#{ticket.ticket_state.name}) State: i18n(#{ticket.state.name})
From: #{article.from} From: #{article.from}
<snip> <snip>
@ -136,7 +136,7 @@ class Observer::Ticket::Notification < ActiveRecord::Observer
# send new note notification to owner # send new note notification to owner
# if agent == created.id # if agent == created.id
if article.ticket_article_sender.name == 'Agent' && article.created_by_id != article.ticket.owner_id if article.sender.name == 'Agent' && article.created_by_id != article.ticket.owner_id
send_notify( send_notify(
{ {
:event => event, :event => event,
@ -144,11 +144,11 @@ class Observer::Ticket::Notification < ActiveRecord::Observer
:subject => 'Updated (#{ticket.title})', :subject => 'Updated (#{ticket.title})',
:body => 'Hi #{recipient.firstname}, :body => 'Hi #{recipient.firstname},
updated (#{ticket.title}) via i18n(#{article.ticket_article_type.name}). updated (#{ticket.title}) via i18n(#{article.type.name}).
Group: #{ticket.group.name} Group: #{ticket.group.name}
Owner: #{ticket.owner.firstname} #{ticket.owner.lastname} Owner: #{ticket.owner.firstname} #{ticket.owner.lastname}
State: i18n(#{ticket.ticket_state.name}) State: i18n(#{ticket.state.name})
From: #{article.from} From: #{article.from}
<snip> <snip>

View file

@ -13,21 +13,21 @@ class Observer::Ticket::ResetNewState < ActiveRecord::Observer
return true if record.internal return true if record.internal
# if sender is agent # if sender is agent
return true if Ticket::Article::Sender.lookup( :id => record.ticket_article_sender_id ).name != 'Agent' return true if Ticket::Article::Sender.lookup( :id => record.sender_id ).name != 'Agent'
# if article is a message to customer # if article is a message to customer
return true if !Ticket::Article::Type.lookup( :id => record.ticket_article_type_id ).communication return true if !Ticket::Article::Type.lookup( :id => record.type_id ).communication
# if current ticket state is still new # if current ticket state is still new
ticket = Ticket.lookup( :id => record.ticket_id ) ticket = Ticket.lookup( :id => record.ticket_id )
return true if ticket.ticket_state.state_type.name != 'new' return true if ticket.state.state_type.name != 'new'
# TODO: add config option to state managment in UI # TODO: add config option to state managment in UI
state = Ticket::State.lookup( :name => 'open' ) state = Ticket::State.lookup( :name => 'open' )
return if !state return if !state
# set ticket to open # set ticket to open
ticket.ticket_state_id = state.id ticket.state_id = state.id
# save ticket # save ticket
ticket.save ticket.save

View file

@ -14,17 +14,17 @@ class Observer::Ticket::UserTicketCounter < ActiveRecord::Observer
return if !record.customer_id return if !record.customer_id
# open ticket count # open ticket count
ticket_state_open = Ticket::State.by_category( 'open' ) state_open = Ticket::State.by_category( 'open' )
tickets_open = Ticket.where( tickets_open = Ticket.where(
:customer_id => record.customer_id, :customer_id => record.customer_id,
:ticket_state_id => ticket_state_open, :state_id => state_open,
).count() ).count()
# closed ticket count # closed ticket count
ticket_state_closed = Ticket::State.by_category( 'closed' ) state_closed = Ticket::State.by_category( 'closed' )
tickets_closed = Ticket.where( tickets_closed = Ticket.where(
:customer_id => record.customer_id, :customer_id => record.customer_id,
:ticket_state_id => ticket_state_closed, :state_id => state_closed,
).count() ).count()
# check if update is needed # check if update is needed

View file

@ -4,13 +4,13 @@ class Ticket < ApplicationModel
include Ticket::Escalation include Ticket::Escalation
include Ticket::Subject include Ticket::Subject
include Ticket::Permission include Ticket::Permission
require 'ticket/assets' load 'ticket/assets.rb'
include Ticket::Assets include Ticket::Assets
require 'ticket/history_log' load 'ticket/history_log.rb'
include Ticket::HistoryLog include Ticket::HistoryLog
require 'ticket/activity_stream_log' load 'ticket/activity_stream_log.rb'
include Ticket::ActivityStreamLog include Ticket::ActivityStreamLog
require 'ticket/search_index' load 'ticket/search_index.rb'
include Ticket::SearchIndex include Ticket::SearchIndex
extend Ticket::Search extend Ticket::Search
@ -48,8 +48,8 @@ class Ticket < ApplicationModel
belongs_to :group belongs_to :group
has_many :articles, :class_name => 'Ticket::Article', :after_add => :cache_update, :after_remove => :cache_update has_many :articles, :class_name => 'Ticket::Article', :after_add => :cache_update, :after_remove => :cache_update
belongs_to :organization belongs_to :organization
belongs_to :ticket_state, :class_name => 'Ticket::State' belongs_to :state, :class_name => 'Ticket::State'
belongs_to :ticket_priority, :class_name => 'Ticket::Priority' belongs_to :priority, :class_name => 'Ticket::Priority'
belongs_to :owner, :class_name => 'User' belongs_to :owner, :class_name => 'User'
belongs_to :customer, :class_name => 'User' belongs_to :customer, :class_name => 'User'
belongs_to :created_by, :class_name => 'User' belongs_to :created_by, :class_name => 'User'
@ -99,11 +99,11 @@ returns
# create new merge article # create new merge article
Ticket::Article.create( Ticket::Article.create(
:ticket_id => self.id, :ticket_id => self.id,
:ticket_article_type_id => Ticket::Article::Type.lookup( :name => 'note' ).id, :type_id => Ticket::Article::Type.lookup( :name => 'note' ).id,
:ticket_article_sender_id => Ticket::Article::Sender.lookup( :name => 'Agent' ).id, :sender_id => Ticket::Article::Sender.lookup( :name => 'Agent' ).id,
:body => 'merged', :body => 'merged',
:internal => false :internal => false
) )
# add history to both # add history to both
@ -118,7 +118,7 @@ returns
) )
# set state to 'merged' # set state to 'merged'
self.ticket_state_id = Ticket::State.lookup( :name => 'merged' ).id self.state_id = Ticket::State.lookup( :name => 'merged' ).id
# rest owner # rest owner
self.owner_id = User.where( :login => '-' ).first.id self.owner_id = User.where( :login => '-' ).first.id

View file

@ -9,21 +9,21 @@ class Ticket::Article < ApplicationModel
include Ticket::Article::ActivityStreamLog include Ticket::Article::ActivityStreamLog
belongs_to :ticket belongs_to :ticket
belongs_to :ticket_article_type, :class_name => 'Ticket::Article::Type' belongs_to :type, :class_name => 'Ticket::Article::Type'
belongs_to :ticket_article_sender, :class_name => 'Ticket::Article::Sender' belongs_to :sender, :class_name => 'Ticket::Article::Sender'
belongs_to :created_by, :class_name => 'User' belongs_to :created_by, :class_name => 'User'
after_create :notify_clients_after_create after_create :notify_clients_after_create
after_update :notify_clients_after_update after_update :notify_clients_after_update
after_destroy :notify_clients_after_destroy after_destroy :notify_clients_after_destroy
activity_stream_support :ignore_attributes => { activity_stream_support :ignore_attributes => {
:ticket_article_type_id => true, :type_id => true,
:ticket_article_sender_id => true, :sender_id => true,
} }
history_support :ignore_attributes => { history_support :ignore_attributes => {
:ticket_article_type_id => true, :type_id => true,
:ticket_article_sender_id => true, :sender_id => true,
} }
class Flag < ApplicationModel class Flag < ApplicationModel

View file

@ -15,9 +15,9 @@ returns
=end =end
def self.rebuild_all def self.rebuild_all
ticket_state_list_open = Ticket::State.by_category( 'open' ) state_list_open = Ticket::State.by_category( 'open' )
tickets = Ticket.where( :ticket_state_id => ticket_state_list_open ) tickets = Ticket.where( :state_id => state_list_open )
tickets.each {|ticket| tickets.each {|ticket|
ticket.escalation_calculation ticket.escalation_calculation
} }
@ -39,8 +39,8 @@ returns
def escalation_calculation def escalation_calculation
# set escalation off if ticket is already closed # set escalation off if ticket is already closed
ticket_state = Ticket::State.lookup( :id => self.ticket_state_id ) state = Ticket::State.lookup( :id => self.state_id )
if ticket_state.ignore_escalation? if state.ignore_escalation?
# nothing to change # nothing to change
return true if !self.escalation_time return true if !self.escalation_time
@ -186,7 +186,7 @@ returns
elsif sla.condition elsif sla.condition
hit = false hit = false
map = [ map = [
[ 'tickets.ticket_priority_id', 'ticket_priority_id' ], [ 'tickets.priority_id', 'priority_id' ],
[ 'tickets.group_id', 'group_id' ] [ 'tickets.group_id', 'group_id' ]
] ]
map.each {|item| map.each {|item|
@ -232,7 +232,7 @@ returns
# ignore if it isn't a state change # ignore if it isn't a state change
next if !history_item['attribute'] next if !history_item['attribute']
next if history_item['attribute'] != 'ticket_state' next if history_item['attribute'] != 'state'
# ignore all newer state before start_time # ignore all newer state before start_time
next if history_item['created_at'] < start_time next if history_item['created_at'] < start_time

View file

@ -45,7 +45,7 @@ returns
{ {
:type => 'updated', :type => 'updated',
:object => 'Ticket', :object => 'Ticket',
:attribute => 'ticket_priority', :attribute => 'priority',
:o_id => 1, :o_id => 1,
:id_to => 3, :id_to => 3,
:id_from => 2, :id_from => 2,

View file

@ -32,12 +32,12 @@ list attributes
returns returns
result = { result = {
:ticket_article_type_id => ticket_article_type_ids, :type_id => type_ids,
:ticket_state_id => ticket_state_ids, :state_id => state_ids,
:ticket_priority_id => ticket_priority_ids, :priority_id => priority_ids,
:owner_id => owner_ids, :owner_id => owner_ids,
:group_id => group_ids, :group_id => group_ids,
:group_id__owner_id => groups_users, :group_id__owner_id => groups_users,
} }
=end =end
@ -51,19 +51,19 @@ returns
end end
# get ticket states # get ticket states
ticket_state_ids = [] state_ids = []
if params[:ticket] if params[:ticket]
ticket_state_type = params[:ticket].ticket_state.state_type state_type = params[:ticket].state.state_type
end end
ticket_state_types = ['open', 'closed', 'pending action', 'pending reminder'] state_types = ['open', 'closed', 'pending action', 'pending reminder']
if ticket_state_type && !ticket_state_types.include?(ticket_state_type.name) if state_type && !state_types.include?(state_type.name)
ticket_state_ids.push params[:ticket].ticket_state.id state_ids.push params[:ticket].state.id
end end
ticket_state_types.each {|type| state_types.each {|type|
ticket_state_type = Ticket::StateType.where( :name => type ).first state_type = Ticket::StateType.where( :name => type ).first
if ticket_state_type if state_type
ticket_state_type.states.each {|ticket_state| state_type.states.each {|state|
ticket_state_ids.push ticket_state.id state_ids.push state.id
} }
end end
} }
@ -97,32 +97,32 @@ returns
} }
# get priorities # get priorities
ticket_priority_ids = [] priority_ids = []
Ticket::Priority.where( :active => true ).each { |priority| Ticket::Priority.where( :active => true ).each { |priority|
ticket_priority_ids.push priority.id priority_ids.push priority.id
} }
ticket_article_type_ids = [] type_ids = []
if params[:ticket] if params[:ticket]
ticket_article_types = ['note', 'phone'] types = ['note', 'phone']
if params[:ticket].group.email_address_id if params[:ticket].group.email_address_id
ticket_article_types.push 'email' types.push 'email'
end end
ticket_article_types.each {|ticket_article_type_name| types.each {|type_name|
ticket_article_type = Ticket::Article::Type.lookup( :name => ticket_article_type_name ) type = Ticket::Article::Type.lookup( :name => type_name )
if ticket_article_type if type
ticket_article_type_ids.push ticket_article_type.id type_ids.push type.id
end end
} }
end end
return { return {
:ticket_article_type_id => ticket_article_type_ids, :type_id => type_ids,
:ticket_state_id => ticket_state_ids, :state_id => state_ids,
:ticket_priority_id => ticket_priority_ids, :priority_id => priority_ids,
:owner_id => owner_ids, :owner_id => owner_ids,
:group_id => group_ids, :group_id => group_ids,
:group_id__owner_id => groups_users, :group_id__owner_id => groups_users,
} }
end end
@ -147,18 +147,18 @@ returns
def self.list_by_customer(data) def self.list_by_customer(data)
# get closed/open states # get closed/open states
ticket_state_list_open = Ticket::State.by_category( 'open' ) state_list_open = Ticket::State.by_category( 'open' )
ticket_state_list_closed = Ticket::State.by_category( 'closed' ) state_list_closed = Ticket::State.by_category( 'closed' )
# get tickets # get tickets
tickets_open = Ticket.where( tickets_open = Ticket.where(
:customer_id => data[:customer_id], :customer_id => data[:customer_id],
:ticket_state_id => ticket_state_list_open :state_id => state_list_open
).limit( data[:limit] || 15 ).order('created_at DESC') ).limit( data[:limit] || 15 ).order('created_at DESC')
tickets_closed = Ticket.where( tickets_closed = Ticket.where(
:customer_id => data[:customer_id], :customer_id => data[:customer_id],
:ticket_state_id => ticket_state_list_closed :state_id => state_list_closed
).limit( data[:limit] || 15 ).order('created_at DESC') ).limit( data[:limit] || 15 ).order('created_at DESC')
return { return {

View file

@ -33,9 +33,9 @@ returns:
check if state is ignored for escalation check if state is ignored for escalation
ticket_state = Ticket::State.lookup( :name => 'state name' ) state = Ticket::State.lookup( :name => 'state name' )
result = ticket_state.ignore_escalation? result = state.ignore_escalation?
returns: returns:

View file

@ -0,0 +1,12 @@
class UpdateTicketReplace < ActiveRecord::Migration
def up
rename_column :tickets, :ticket_priority_id, :priority_id
rename_column :tickets, :ticket_state_id, :state_id
rename_column :ticket_articles, :ticket_article_type_id, :type_id
rename_column :ticket_articles, :ticket_article_sender_id, :sender_id
end
def down
end
end

View file

@ -1097,7 +1097,7 @@ Setting.create_if_not_exists(
:title => 'Import Endpoint', :title => 'Import Endpoint',
:name => 'import_otrs_endpoint', :name => 'import_otrs_endpoint',
:area => 'Import::OTRS', :area => 'Import::OTRS',
:description => 'Defines OTRS endpoint to import users, ticket, ticket_states and articles.', :description => 'Defines OTRS endpoint to import users, ticket, states and articles.',
:options => { :options => {
:form => [ :form => [
{ {
@ -1302,19 +1302,19 @@ Ticket::Article::Sender.create_if_not_exists( :name => 'System' )
UserInfo.current_user_id = user_community.id UserInfo.current_user_id = user_community.id
ticket = Ticket.create( ticket = Ticket.create(
:group_id => Group.where( :name => 'Users' ).first.id, :group_id => Group.where( :name => 'Users' ).first.id,
:customer_id => User.where( :login => 'nicole.braun@zammad.org' ).first.id, :customer_id => User.where( :login => 'nicole.braun@zammad.org' ).first.id,
:owner_id => User.where( :login => '-' ).first.id, :owner_id => User.where( :login => '-' ).first.id,
:title => 'Welcome to Zammad!', :title => 'Welcome to Zammad!',
:ticket_state_id => Ticket::State.where( :name => 'new' ).first.id, :state_id => Ticket::State.where( :name => 'new' ).first.id,
:ticket_priority_id => Ticket::Priority.where( :name => '2 normal' ).first.id, :priority_id => Ticket::Priority.where( :name => '2 normal' ).first.id,
) )
Ticket::Article.create( Ticket::Article.create(
:ticket_id => ticket.id, :ticket_id => ticket.id,
:ticket_article_type_id => Ticket::Article::Type.where(:name => 'phone' ).first.id, :type_id => Ticket::Article::Type.where(:name => 'phone' ).first.id,
:ticket_article_sender_id => Ticket::Article::Sender.where(:name => 'Customer' ).first.id, :sender_id => Ticket::Article::Sender.where(:name => 'Customer' ).first.id,
:from => 'Zammad Feedback <feedback@zammad.org>', :from => 'Zammad Feedback <feedback@zammad.org>',
:body => 'Welcome! :body => 'Welcome!
Thank you for installing Zammad. Thank you for installing Zammad.
@ -1337,17 +1337,17 @@ Overview.create_if_not_exists(
:prio => 1000, :prio => 1000,
:role_id => overview_role.id, :role_id => overview_role.id,
:condition => { :condition => {
'tickets.ticket_state_id' => [ 1,2,3 ], 'tickets.state_id' => [ 1,2,3 ],
'tickets.owner_id' => 'current_user.id', 'tickets.owner_id' => 'current_user.id',
}, },
:order => { :order => {
:by => 'created_at', :by => 'created_at',
:direction => 'ASC', :direction => 'ASC',
}, },
:view => { :view => {
:d => [ 'title', 'customer', 'ticket_state', 'group', 'created_at' ], :d => [ 'title', 'customer', 'state', 'group', 'created_at' ],
:s => [ 'number', 'title', 'customer', 'ticket_state', 'ticket_priority', 'group', 'created_at' ], :s => [ 'number', 'title', 'customer', 'state', 'priority', 'group', 'created_at' ],
:m => [ 'number', 'title', 'customer', 'ticket_state', 'ticket_priority', 'group', 'created_at' ], :m => [ 'number', 'title', 'customer', 'state', 'priority', 'group', 'created_at' ],
:view_mode_default => 's', :view_mode_default => 's',
}, },
) )
@ -1358,17 +1358,17 @@ Overview.create_if_not_exists(
:prio => 1001, :prio => 1001,
:role_id => overview_role.id, :role_id => overview_role.id,
:condition => { :condition => {
'tickets.ticket_state_id' => [1,2,3], 'tickets.state_id' => [1,2,3],
'tickets.owner_id' => 1, 'tickets.owner_id' => 1,
}, },
:order => { :order => {
:by => 'created_at', :by => 'created_at',
:direction => 'ASC', :direction => 'ASC',
}, },
:view => { :view => {
:d => [ 'title', 'customer', 'ticket_state', 'group', 'created_at' ], :d => [ 'title', 'customer', 'state', 'group', 'created_at' ],
:s => [ 'number', 'title', 'customer', 'ticket_state', 'ticket_priority', 'group', 'created_at' ], :s => [ 'number', 'title', 'customer', 'state', 'priority', 'group', 'created_at' ],
:m => [ 'number', 'title', 'customer', 'ticket_state', 'ticket_priority', 'group', 'created_at' ], :m => [ 'number', 'title', 'customer', 'state', 'priority', 'group', 'created_at' ],
:view_mode_default => 's', :view_mode_default => 's',
}, },
) )
@ -1379,16 +1379,16 @@ Overview.create_if_not_exists(
:prio => 1002, :prio => 1002,
:role_id => overview_role.id, :role_id => overview_role.id,
:condition => { :condition => {
'tickets.ticket_state_id' => [1,2,3], 'tickets.state_id' => [1,2,3],
}, },
:order => { :order => {
:by => 'created_at', :by => 'created_at',
:direction => 'ASC', :direction => 'ASC',
}, },
:view => { :view => {
:d => [ 'title', 'customer', 'ticket_state', 'group', 'created_at' ], :d => [ 'title', 'customer', 'state', 'group', 'created_at' ],
:s => [ 'number', 'title', 'customer', 'ticket_state', 'ticket_priority', 'group', 'created_at' ], :s => [ 'number', 'title', 'customer', 'state', 'priority', 'group', 'created_at' ],
:m => [ 'number', 'title', 'customer', 'ticket_state', 'ticket_priority', 'group', 'created_at' ], :m => [ 'number', 'title', 'customer', 'state', 'priority', 'group', 'created_at' ],
:view_mode_default => 's', :view_mode_default => 's',
}, },
) )
@ -1406,9 +1406,9 @@ Overview.create_if_not_exists(
:direction => 'ASC', :direction => 'ASC',
}, },
:view => { :view => {
:d => [ 'title', 'customer', 'ticket_state', 'group', 'owner', 'escalation_time' ], :d => [ 'title', 'customer', 'state', 'group', 'owner', 'escalation_time' ],
:s => [ 'number', 'title', 'customer', 'ticket_state', 'ticket_priority', 'group', 'owner', 'escalation_time' ], :s => [ 'number', 'title', 'customer', 'state', 'priority', 'group', 'owner', 'escalation_time' ],
:m => [ 'number', 'title', 'customer', 'ticket_state', 'ticket_priority', 'group', 'owner', 'escalation_time' ], :m => [ 'number', 'title', 'customer', 'state', 'priority', 'group', 'owner', 'escalation_time' ],
:view_mode_default => 's', :view_mode_default => 's',
}, },
) )
@ -1419,17 +1419,17 @@ Overview.create_if_not_exists(
:prio => 1020, :prio => 1020,
:role_id => overview_role.id, :role_id => overview_role.id,
:condition => { :condition => {
'tickets.ticket_state_id' => [3], 'tickets.state_id' => [3],
'tickets.owner_id' => 'current_user.id', 'tickets.owner_id' => 'current_user.id',
}, },
:order => { :order => {
:by => 'created_at', :by => 'created_at',
:direction => 'ASC', :direction => 'ASC',
}, },
:view => { :view => {
:d => [ 'title', 'customer', 'ticket_state', 'group', 'created_at' ], :d => [ 'title', 'customer', 'state', 'group', 'created_at' ],
:s => [ 'number', 'title', 'customer', 'ticket_state', 'ticket_priority', 'group', 'created_at' ], :s => [ 'number', 'title', 'customer', 'state', 'priority', 'group', 'created_at' ],
:m => [ 'number', 'title', 'customer', 'ticket_state', 'ticket_priority', 'group', 'created_at' ], :m => [ 'number', 'title', 'customer', 'state', 'priority', 'group', 'created_at' ],
:view_mode_default => 's', :view_mode_default => 's',
}, },
) )
@ -1440,7 +1440,7 @@ Overview.create_if_not_exists(
:prio => 9003, :prio => 9003,
:role_id => overview_role.id, :role_id => overview_role.id,
:condition => { :condition => {
# 'tickets.ticket_state_id' => [3], # 'tickets.state_id' => [3],
# 'tickets.owner_id' => current_user.id, # 'tickets.owner_id' => current_user.id,
}, },
:order => { :order => {
@ -1448,9 +1448,9 @@ Overview.create_if_not_exists(
:direction => 'ASC', :direction => 'ASC',
}, },
:view => { :view => {
:s => [ 'title', 'customer', 'ticket_state', 'group', 'created_at' ], :s => [ 'title', 'customer', 'state', 'group', 'created_at' ],
:s => [ 'number', 'title', 'customer', 'ticket_state', 'ticket_priority', 'group', 'created_at' ], :s => [ 'number', 'title', 'customer', 'state', 'priority', 'group', 'created_at' ],
:m => [ 'number', 'title', 'customer', 'ticket_state', 'ticket_priority', 'group', 'created_at' ], :m => [ 'number', 'title', 'customer', 'state', 'priority', 'group', 'created_at' ],
:view_mode_default => 's', :view_mode_default => 's',
}, },
) )
@ -1462,7 +1462,7 @@ Overview.create_if_not_exists(
:prio => 1000, :prio => 1000,
:role_id => overview_role.id, :role_id => overview_role.id,
:condition => { :condition => {
'tickets.ticket_state_id' => [ 1,2,3,4,6 ], 'tickets.state_id' => [ 1,2,3,4,6 ],
'tickets.customer_id' => 'current_user.id', 'tickets.customer_id' => 'current_user.id',
}, },
:order => { :order => {
@ -1470,9 +1470,9 @@ Overview.create_if_not_exists(
:direction => 'DESC', :direction => 'DESC',
}, },
:view => { :view => {
:d => [ 'title', 'customer', 'ticket_state', 'created_at' ], :d => [ 'title', 'customer', 'state', 'created_at' ],
:s => [ 'number', 'title', 'ticket_state', 'ticket_priority', 'created_at' ], :s => [ 'number', 'title', 'state', 'priority', 'created_at' ],
:m => [ 'number', 'title', 'ticket_state', 'ticket_priority', 'created_at' ], :m => [ 'number', 'title', 'state', 'priority', 'created_at' ],
:view_mode_default => 's', :view_mode_default => 's',
}, },
) )
@ -1483,7 +1483,7 @@ Overview.create_if_not_exists(
:role_id => overview_role.id, :role_id => overview_role.id,
:organization_shared => true, :organization_shared => true,
:condition => { :condition => {
'tickets.ticket_state_id' => [ 1,2,3,4,6 ], 'tickets.state_id' => [ 1,2,3,4,6 ],
'tickets.organization_id' => 'current_user.organization_id', 'tickets.organization_id' => 'current_user.organization_id',
}, },
:order => { :order => {
@ -1491,9 +1491,9 @@ Overview.create_if_not_exists(
:direction => 'DESC', :direction => 'DESC',
}, },
:view => { :view => {
:d => [ 'title', 'customer', 'ticket_state', 'created_at' ], :d => [ 'title', 'customer', 'state', 'created_at' ],
:s => [ 'number', 'title', 'customer', 'ticket_state', 'ticket_priority', 'created_at' ], :s => [ 'number', 'title', 'customer', 'state', 'priority', 'created_at' ],
:m => [ 'number', 'title', 'ticket_state', 'ticket_priority', 'created_at' ], :m => [ 'number', 'title', 'state', 'priority', 'created_at' ],
:view_mode_default => 's', :view_mode_default => 's',
}, },
) )

View file

@ -127,10 +127,10 @@ module Import::OTRS
#self.ticket('156115') #self.ticket('156115')
#return #return
# create states # create states
ticket_state state
# create priorities # create priorities
ticket_priority priority
# create groups # create groups
ticket_group ticket_group
@ -185,10 +185,10 @@ module Import::OTRS
end end
# create states # create states
ticket_state state
# create priorities # create priorities
ticket_priority priority
# create groups # create groups
ticket_group ticket_group
@ -233,8 +233,8 @@ module Import::OTRS
:CreateBy => :created_by_id, :CreateBy => :created_by_id,
:TicketNumber => :number, :TicketNumber => :number,
:QueueID => :group_id, :QueueID => :group_id,
:StateID => :ticket_state_id, :StateID => :state_id,
:PriorityID => :ticket_priority_id, :PriorityID => :priority_id,
:Owner => :owner, :Owner => :owner,
:CustomerUserID => :customer, :CustomerUserID => :customer,
:Title => :title, :Title => :title,
@ -249,8 +249,8 @@ module Import::OTRS
# :CloseTimeDiffInMin => :close_time_diff_in_min, # :CloseTimeDiffInMin => :close_time_diff_in_min,
}, },
:Article => { :Article => {
:SenderType => :ticket_article_sender, :SenderType => :sender,
:ArticleType => :ticket_article_type, :ArticleType => :type,
:TicketID => :ticket_id, :TicketID => :ticket_id,
:ArticleID => :id, :ArticleID => :id,
:Body => :body, :Body => :body,
@ -338,7 +338,7 @@ module Import::OTRS
end end
} }
# create customer/sender if needed # create customer/sender if needed
if article_new[:ticket_article_sender] == 'customer' && article_new[:created_by_id].to_i == 1 && !article_new[:from].empty? if article_new[:sender] == 'customer' && article_new[:created_by_id].to_i == 1 && !article_new[:from].empty?
# set extra headers # set extra headers
begin begin
email = Mail::Address.new( article_new[:from] ).address email = Mail::Address.new( article_new[:from] ).address
@ -379,41 +379,41 @@ module Import::OTRS
article_new[:created_by_id] = user.id article_new[:created_by_id] = user.id
end end
if article_new[:ticket_article_sender] == 'customer' if article_new[:sender] == 'customer'
article_new[:ticket_article_sender_id] = Ticket::Article::Sender.lookup( :name => 'Customer' ).id article_new[:sender_id] = Ticket::Article::Sender.lookup( :name => 'Customer' ).id
article_new.delete( :ticket_article_sender ) article_new.delete( :sender )
end end
if article_new[:ticket_article_sender] == 'agent' if article_new[:sender] == 'agent'
article_new[:ticket_article_sender_id] = Ticket::Article::Sender.lookup( :name => 'Agent' ).id article_new[:sender_id] = Ticket::Article::Sender.lookup( :name => 'Agent' ).id
article_new.delete( :ticket_article_sender ) article_new.delete( :sender )
end end
if article_new[:ticket_article_sender] == 'system' if article_new[:sender] == 'system'
article_new[:ticket_article_sender_id] = Ticket::Article::Sender.lookup( :name => 'System' ).id article_new[:sender_id] = Ticket::Article::Sender.lookup( :name => 'System' ).id
article_new.delete( :ticket_article_sender ) article_new.delete( :sender )
end end
if article_new[:ticket_article_type] == 'email-external' if article_new[:type] == 'email-external'
article_new[:ticket_article_type_id] = Ticket::Article::Type.lookup( :name => 'email' ).id article_new[:type_id] = Ticket::Article::Type.lookup( :name => 'email' ).id
article_new[:internal] = false article_new[:internal] = false
elsif article_new[:ticket_article_type] == 'email-internal' elsif article_new[:type] == 'email-internal'
article_new[:ticket_article_type_id] = Ticket::Article::Type.lookup( :name => 'email' ).id article_new[:type_id] = Ticket::Article::Type.lookup( :name => 'email' ).id
article_new[:internal] = true article_new[:internal] = true
elsif article_new[:ticket_article_type] == 'note-external' elsif article_new[:type] == 'note-external'
article_new[:ticket_article_type_id] = Ticket::Article::Type.lookup( :name => 'note' ).id article_new[:type_id] = Ticket::Article::Type.lookup( :name => 'note' ).id
article_new[:internal] = false article_new[:internal] = false
elsif article_new[:ticket_article_type] == 'note-internal' elsif article_new[:type] == 'note-internal'
article_new[:ticket_article_type_id] = Ticket::Article::Type.lookup( :name => 'note' ).id article_new[:type_id] = Ticket::Article::Type.lookup( :name => 'note' ).id
article_new[:internal] = true article_new[:internal] = true
elsif article_new[:ticket_article_type] == 'phone' elsif article_new[:type] == 'phone'
article_new[:ticket_article_type_id] = Ticket::Article::Type.lookup( :name => 'phone' ).id article_new[:type_id] = Ticket::Article::Type.lookup( :name => 'phone' ).id
article_new[:internal] = false article_new[:internal] = false
elsif article_new[:ticket_article_type] == 'webrequest' elsif article_new[:type] == 'webrequest'
article_new[:ticket_article_type_id] = Ticket::Article::Type.lookup( :name => 'web' ).id article_new[:type_id] = Ticket::Article::Type.lookup( :name => 'web' ).id
article_new[:internal] = false article_new[:internal] = false
else else
article_new[:ticket_article_type_id] = 9 article_new[:type_id] = 9
end end
article_new.delete( :ticket_article_type ) article_new.delete( :type )
article_old = Ticket::Article.where( :id => article_new[:id] ).first article_old = Ticket::Article.where( :id => article_new[:id] ).first
#puts 'ARTICLE OLD ' + article_old.inspect #puts 'ARTICLE OLD ' + article_old.inspect
# set state types # set state types
@ -466,7 +466,7 @@ module Import::OTRS
:o_id => history['TicketID'], :o_id => history['TicketID'],
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:value_from => from, :value_from => from,
:id_from => from_id, :id_from => from_id,
:value_to => to, :value_to => to,
@ -516,7 +516,7 @@ module Import::OTRS
:o_id => history['TicketID'], :o_id => history['TicketID'],
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_priority', :history_attribute => 'priority',
:value_from => from, :value_from => from,
:value_to => to, :value_to => to,
:id_from => from_id, :id_from => from_id,
@ -542,7 +542,7 @@ module Import::OTRS
} }
end end
def self.ticket_state def self.state
response = request( "public.pl?Action=Export;Type=State" ) response = request( "public.pl?Action=Export;Type=State" )
return if !response return if !response
return if !response.success? return if !response.success?
@ -587,8 +587,8 @@ module Import::OTRS
if state['TypeName'] == 'pending auto' if state['TypeName'] == 'pending auto'
state['TypeName'] = 'pending action' state['TypeName'] = 'pending action'
end end
ticket_state_type = Ticket::StateType.where( :name => state['TypeName'] ).first state_type = Ticket::StateType.where( :name => state['TypeName'] ).first
state_new[:state_type_id] = ticket_state_type.id state_new[:state_type_id] = state_type.id
if state_old if state_old
# puts 'TS: ' + state_new.inspect # puts 'TS: ' + state_new.inspect
state_old.update_attributes(state_new) state_old.update_attributes(state_new)
@ -599,7 +599,7 @@ module Import::OTRS
end end
} }
end end
def self.ticket_priority def self.priority
response = request( "public.pl?Action=Export;Type=Priority" ) response = request( "public.pl?Action=Export;Type=Priority" )
return if !response return if !response
return if !response.success? return if !response.success?

View file

@ -25,30 +25,30 @@ class ActivityStreamTest < ActiveSupport::TestCase
{ {
:create => { :create => {
:ticket => { :ticket => {
:group_id => Group.lookup( :name => 'Users' ).id, :group_id => Group.lookup( :name => 'Users' ).id,
:customer_id => current_user.id, :customer_id => current_user.id,
:owner_id => User.lookup( :login => '-' ).id, :owner_id => User.lookup( :login => '-' ).id,
:title => 'Unit Test 1 (äöüß)!', :title => 'Unit Test 1 (äöüß)!',
:ticket_state_id => Ticket::State.lookup( :name => 'new' ).id, :state_id => Ticket::State.lookup( :name => 'new' ).id,
:ticket_priority_id => Ticket::Priority.lookup( :name => '2 normal' ).id, :priority_id => Ticket::Priority.lookup( :name => '2 normal' ).id,
:updated_by_id => current_user.id, :updated_by_id => current_user.id,
:created_by_id => current_user.id, :created_by_id => current_user.id,
}, },
:article => { :article => {
:updated_by_id => current_user.id, :updated_by_id => current_user.id,
:created_by_id => current_user.id, :created_by_id => current_user.id,
:ticket_article_type_id => Ticket::Article::Type.lookup( :name => 'phone' ).id, :type_id => Ticket::Article::Type.lookup( :name => 'phone' ).id,
:ticket_article_sender_id => Ticket::Article::Sender.lookup( :name => 'Customer' ).id, :sender_id => Ticket::Article::Sender.lookup( :name => 'Customer' ).id,
:from => 'Unit Test <unittest@example.com>', :from => 'Unit Test <unittest@example.com>',
:body => 'Unit Test 123', :body => 'Unit Test 123',
:internal => false :internal => false
}, },
}, },
:update => { :update => {
:ticket => { :ticket => {
:title => 'Unit Test 1 (äöüß) - update!', :title => 'Unit Test 1 (äöüß) - update!',
:ticket_state_id => Ticket::State.lookup( :name => 'open' ).id, :state_id => Ticket::State.lookup( :name => 'open' ).id,
:ticket_priority_id => Ticket::Priority.lookup( :name => '1 low' ).id, :priority_id => Ticket::Priority.lookup( :name => '1 low' ).id,
}, },
}, },
:check => [ :check => [
@ -286,7 +286,8 @@ class ActivityStreamTest < ActiveSupport::TestCase
:update2 => { :update2 => {
:user => { :user => {
:firstname => 'Bob', :firstname => 'Bob',
:lastname => 'Smith', }, :lastname => 'Smith',
},
}, },
:check => [ :check => [
{ {

View file

@ -23,14 +23,14 @@ Some Textäöü",
:success => true, :success => true,
:result => { :result => {
0 => { 0 => {
:ticket_priority => '2 normal', :priority => '2 normal',
:title => 'äöü some subject', :title => 'äöü some subject',
}, },
1 => { 1 => {
:body => 'Some Textäöü', :body => 'Some Textäöü',
:ticket_article_sender => 'Customer', :sender => 'Customer',
:ticket_article_type => 'email', :type => 'email',
:internal => false, :internal => false,
}, },
}, },
}, },
@ -43,14 +43,14 @@ Some Textäöü".encode("ISO-8859-1"),
:success => true, :success => true,
:result => { :result => {
0 => { 0 => {
:ticket_priority => '2 normal', :priority => '2 normal',
:title => '', # should be äöü some subject, but can not be parsed from mime tools :title => '', # should be äöü some subject, but can not be parsed from mime tools
}, },
1 => { 1 => {
:body => 'Some Textäöü', :body => 'Some Textäöü',
:ticket_article_sender => 'Customer', :sender => 'Customer',
:ticket_article_type => 'email', :type => 'email',
:internal => false, :internal => false,
}, },
}, },
}, },
@ -119,13 +119,13 @@ Some Text",
:success => true, :success => true,
:result => { :result => {
0 => { 0 => {
:ticket_priority => '2 normal', :priority => '2 normal',
:title => '【专业为您注册香港及海外公司(好处多多)】                                                                                                                                                                                                                                     ', :title => '【专业为您注册香港及海外公司(好处多多)】                                                                                                                                                                                                                                     ',
}, },
1 => { 1 => {
:body => 'Some Text', :body => 'Some Text',
:ticket_article_sender => 'Customer', :sender => 'Customer',
:ticket_article_type => 'email', :type => 'email',
}, },
}, },
}, },
@ -148,9 +148,9 @@ Some Text',
:data => 'From: me@example.com :data => 'From: me@example.com
To: customer@example.com To: customer@example.com
Subject: some subject Subject: some subject
X-Zammad-Ticket-Ticket_Priority: 3 high X-Zammad-Ticket-priority: 3 high
X-Zammad-Article-Ticket_Article_Sender: System X-Zammad-Article-sender: System
x-Zammad-Article-Ticket_Article_Type: phone x-Zammad-Article-type: phone
x-Zammad-Article-Internal: true x-Zammad-Article-Internal: true
Some Text', Some Text',
@ -158,13 +158,13 @@ Some Text',
:success => true, :success => true,
:result => { :result => {
0 => { 0 => {
:ticket_priority => '3 high', :priority => '3 high',
:title => 'some subject', :title => 'some subject',
}, },
1 => { 1 => {
:ticket_article_sender => 'System', :sender => 'System',
:ticket_article_type => 'phone', :type => 'phone',
:internal => true, :internal => true,
}, },
}, },
}, },
@ -178,9 +178,9 @@ Some Text',
:data => 'From: me@example.com :data => 'From: me@example.com
To: customer@example.com To: customer@example.com
Subject: some subject Subject: some subject
X-Zammad-Ticket-Ticket_Priority: 3 high X-Zammad-Ticket-Priority: 3 high
X-Zammad-Article-Ticket_Article_Sender: System X-Zammad-Article-Sender: System
x-Zammad-Article-Ticket_Article_Type: phone x-Zammad-Article-Type: phone
x-Zammad-Article-Internal: true x-Zammad-Article-Internal: true
Some Text', Some Text',
@ -188,13 +188,13 @@ Some Text',
:success => true, :success => true,
:result => { :result => {
0 => { 0 => {
:ticket_priority => '2 normal', :priority => '2 normal',
:title => 'some subject', :title => 'some subject',
}, },
1 => { 1 => {
:ticket_article_sender => 'Customer', :sender => 'Customer',
:ticket_article_type => 'email', :type => 'email',
:internal => false, :internal => false,
}, },
}, },
}, },
@ -204,7 +204,7 @@ Some Text',
test 'process with postmaster filter' do test 'process with postmaster filter' do
group = Group.create_if_not_exists( group = Group.create_if_not_exists(
:name => 'Test Group', :name => 'Test Group',
:created_by_id => 1, :created_by_id => 1,
:updated_by_id => 1, :updated_by_id => 1,
) )
@ -215,7 +215,7 @@ Some Text',
:from => 'nobody@example.com', :from => 'nobody@example.com',
}, },
:perform => { :perform => {
'X-Zammad-Ticket-Ticket_Priority' => '3 high', 'X-Zammad-Ticket-priority' => '3 high',
}, },
:channel => 'email', :channel => 'email',
:active => true, :active => true,
@ -261,14 +261,14 @@ Some Text',
:success => true, :success => true,
:result => { :result => {
0 => { 0 => {
:group => group.name, :group => group.name,
:ticket_priority => '2 normal', :priority => '2 normal',
:title => 'some subject', :title => 'some subject',
}, },
1 => { 1 => {
:ticket_article_sender => 'Customer', :sender => 'Customer',
:ticket_article_type => 'email', :type => 'email',
:internal => true, :internal => true,
}, },
}, },
}, },
@ -283,14 +283,14 @@ Some Text',
:success => true, :success => true,
:result => { :result => {
0 => { 0 => {
:group => 'Twitter', :group => 'Twitter',
:ticket_priority => '2 normal', :priority => '2 normal',
:title => 'some subject', :title => 'some subject',
}, },
1 => { 1 => {
:ticket_article_sender => 'Customer', :sender => 'Customer',
:ticket_article_type => 'email', :type => 'email',
:internal => true, :internal => true,
}, },
}, },
}, },

View file

@ -11,30 +11,30 @@ class HistoryTest < ActiveSupport::TestCase
{ {
:ticket_create => { :ticket_create => {
:ticket => { :ticket => {
:group_id => Group.lookup( :name => 'Users' ).id, :group_id => Group.lookup( :name => 'Users' ).id,
:customer_id => current_user.id, :customer_id => current_user.id,
:owner_id => User.lookup( :login => '-' ).id, :owner_id => User.lookup( :login => '-' ).id,
:title => 'Unit Test 1 (äöüß)!', :title => 'Unit Test 1 (äöüß)!',
:ticket_state_id => Ticket::State.lookup( :name => 'new' ).id, :state_id => Ticket::State.lookup( :name => 'new' ).id,
:ticket_priority_id => Ticket::Priority.lookup( :name => '2 normal' ).id, :priority_id => Ticket::Priority.lookup( :name => '2 normal' ).id,
:updated_by_id => current_user.id, :updated_by_id => current_user.id,
:created_by_id => current_user.id, :created_by_id => current_user.id,
}, },
:article => { :article => {
:updated_by_id => current_user.id, :updated_by_id => current_user.id,
:created_by_id => current_user.id, :created_by_id => current_user.id,
:ticket_article_type_id => Ticket::Article::Type.lookup( :name => 'phone' ).id, :type_id => Ticket::Article::Type.lookup( :name => 'phone' ).id,
:ticket_article_sender_id => Ticket::Article::Sender.lookup( :name => 'Customer' ).id, :sender_id => Ticket::Article::Sender.lookup( :name => 'Customer' ).id,
:from => 'Unit Test <unittest@example.com>', :from => 'Unit Test <unittest@example.com>',
:body => 'Unit Test 123', :body => 'Unit Test 123',
:internal => false :internal => false
}, },
}, },
:ticket_update => { :ticket_update => {
:ticket => { :ticket => {
:title => 'Unit Test 1 (äöüß) - update!', :title => 'Unit Test 1 (äöüß) - update!',
:ticket_state_id => Ticket::State.lookup( :name => 'open' ).id, :state_id => Ticket::State.lookup( :name => 'open' ).id,
:ticket_priority_id => Ticket::Priority.lookup( :name => '1 low' ).id, :priority_id => Ticket::Priority.lookup( :name => '1 low' ).id,
}, },
}, },
:history_check => [ :history_check => [
@ -55,7 +55,7 @@ class HistoryTest < ActiveSupport::TestCase
:result => true, :result => true,
:history_object => 'Ticket', :history_object => 'Ticket',
:history_type => 'updated', :history_type => 'updated',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:value_from => 'new', :value_from => 'new',
:value_to => 'open', :value_to => 'open',
:id_from => Ticket::State.lookup( :name => 'new' ).id, :id_from => Ticket::State.lookup( :name => 'new' ).id,
@ -78,33 +78,33 @@ class HistoryTest < ActiveSupport::TestCase
{ {
:ticket_create => { :ticket_create => {
:ticket => { :ticket => {
:group_id => Group.lookup( :name => 'Users' ).id, :group_id => Group.lookup( :name => 'Users' ).id,
:customer_id => current_user.id, :customer_id => current_user.id,
:owner_id => User.lookup( :login => '-' ).id, :owner_id => User.lookup( :login => '-' ).id,
:title => 'Unit Test 2 (äöüß)!', :title => 'Unit Test 2 (äöüß)!',
:ticket_state_id => Ticket::State.lookup( :name => 'new' ).id, :state_id => Ticket::State.lookup( :name => 'new' ).id,
:ticket_priority_id => Ticket::Priority.lookup( :name => '2 normal' ).id, :priority_id => Ticket::Priority.lookup( :name => '2 normal' ).id,
:updated_by_id => current_user.id, :updated_by_id => current_user.id,
:created_by_id => current_user.id, :created_by_id => current_user.id,
}, },
:article => { :article => {
:created_by_id => current_user.id, :created_by_id => current_user.id,
:updated_by_id => current_user.id, :updated_by_id => current_user.id,
:ticket_article_type_id => Ticket::Article::Type.lookup(:name => 'phone' ).id, :type_id => Ticket::Article::Type.lookup(:name => 'phone' ).id,
:ticket_article_sender_id => Ticket::Article::Sender.lookup(:name => 'Customer' ).id, :sender_id => Ticket::Article::Sender.lookup(:name => 'Customer' ).id,
:from => 'Unit Test <unittest@example.com>', :from => 'Unit Test <unittest@example.com>',
:body => 'Unit Test 123', :body => 'Unit Test 123',
:internal => false :internal => false
}, },
}, },
:ticket_update => { :ticket_update => {
:ticket => { :ticket => {
:title => 'Unit Test 2 (äöüß) - update!', :title => 'Unit Test 2 (äöüß) - update!',
:ticket_state_id => Ticket::State.lookup( :name => 'open' ).id, :state_id => Ticket::State.lookup( :name => 'open' ).id,
:owner_id => current_user.id, :owner_id => current_user.id,
}, },
:article => { :article => {
:from => 'Unit 2 Test 2 <unittest@example.com>', :from => 'Unit 2 Test 2 <unittest@example.com>',
}, },
}, },
:history_check => [ :history_check => [
@ -132,9 +132,9 @@ class HistoryTest < ActiveSupport::TestCase
:id_to => current_user.id, :id_to => current_user.id,
}, },
{ {
:result => true, :result => true,
:history_object => 'Ticket::Article', :history_object => 'Ticket::Article',
:history_type => 'created', :history_type => 'created',
}, },
{ {
:result => true, :result => true,
@ -302,9 +302,9 @@ class HistoryTest < ActiveSupport::TestCase
}, },
:history_check => [ :history_check => [
{ {
:result => true, :result => true,
:history_object => 'Organization', :history_object => 'Organization',
:history_type => 'created', :history_type => 'created',
}, },
{ {
:result => true, :result => true,

View file

@ -7,8 +7,8 @@ class NotificationFactoryTest < ActiveSupport::TestCase
:title => 'some title äöüß', :title => 'some title äöüß',
:group => Group.lookup( :name => 'Users'), :group => Group.lookup( :name => 'Users'),
:customer_id => 2, :customer_id => 2,
:ticket_state => Ticket::State.lookup( :name => 'new' ), :state => Ticket::State.lookup( :name => 'new' ),
:ticket_priority => Ticket::Priority.lookup( :name => '2 normal' ), :priority => Ticket::Priority.lookup( :name => '2 normal' ),
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
@ -41,7 +41,7 @@ class NotificationFactoryTest < ActiveSupport::TestCase
}, },
{ {
:locale => 'de', :locale => 'de',
:string => '\'i18n(#{ticket.ticket_state.name})\' ticket state', :string => '\'i18n(#{ticket.state.name})\' ticket state',
:result => '\'neu\' ticket state', :result => '\'neu\' ticket state',
}, },
] ]

View file

@ -4,33 +4,33 @@ require 'test_helper'
class TicketTest < ActiveSupport::TestCase class TicketTest < ActiveSupport::TestCase
test 'ticket create' do test 'ticket create' do
ticket = Ticket.create( ticket = Ticket.create(
:title => 'some title äöüß', :title => 'some title äöüß',
:group => Group.lookup( :name => 'Users'), :group => Group.lookup( :name => 'Users'),
:customer_id => 2, :customer_id => 2,
:ticket_state => Ticket::State.lookup( :name => 'new' ), :state => Ticket::State.lookup( :name => 'new' ),
:ticket_priority => Ticket::Priority.lookup( :name => '2 normal' ), :priority => Ticket::Priority.lookup( :name => '2 normal' ),
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
assert( ticket, "ticket created" ) assert( ticket, "ticket created" )
assert_equal( ticket.title, 'some title äöüß', 'ticket.title verify' ) assert_equal( ticket.title, 'some title äöüß', 'ticket.title verify' )
assert_equal( ticket.group.name, 'Users', 'ticket.group verify' ) assert_equal( ticket.group.name, 'Users', 'ticket.group verify' )
assert_equal( ticket.ticket_state.name, 'new', 'ticket.state verify' ) assert_equal( ticket.state.name, 'new', 'ticket.state verify' )
# create inbound article # create inbound article
article_inbound = Ticket::Article.create( article_inbound = Ticket::Article.create(
:ticket_id => ticket.id, :ticket_id => ticket.id,
:from => 'some_sender@example.com', :from => 'some_sender@example.com',
:to => 'some_recipient@example.com', :to => 'some_recipient@example.com',
:subject => 'some subject', :subject => 'some subject',
:message_id => 'some@id', :message_id => 'some@id',
:body => 'some message article_inbound 😍😍😍', :body => 'some message article_inbound 😍😍😍',
:internal => false, :internal => false,
:ticket_article_sender => Ticket::Article::Sender.where(:name => 'Customer').first, :sender => Ticket::Article::Sender.where(:name => 'Customer').first,
:ticket_article_type => Ticket::Article::Type.where(:name => 'email').first, :type => Ticket::Article::Type.where(:name => 'email').first,
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
assert_equal( article_inbound.body, 'some message article_inbound 😍😍😍'.utf8_to_3bytesutf8, 'article_inbound.body verify - inbound' ) assert_equal( article_inbound.body, 'some message article_inbound 😍😍😍'.utf8_to_3bytesutf8, 'article_inbound.body verify - inbound' )
@ -44,15 +44,15 @@ class TicketTest < ActiveSupport::TestCase
# create note article # create note article
article_note = Ticket::Article.create( article_note = Ticket::Article.create(
:ticket_id => ticket.id, :ticket_id => ticket.id,
:from => 'some persion', :from => 'some persion',
:subject => 'some note', :subject => 'some note',
:body => 'some message', :body => 'some message',
:internal => true, :internal => true,
:ticket_article_sender => Ticket::Article::Sender.where(:name => 'Agent').first, :sender => Ticket::Article::Sender.where(:name => 'Agent').first,
:ticket_article_type => Ticket::Article::Type.where(:name => 'note').first, :type => Ticket::Article::Type.where(:name => 'note').first,
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
ticket = Ticket.find(ticket.id) ticket = Ticket.find(ticket.id)
@ -66,17 +66,17 @@ class TicketTest < ActiveSupport::TestCase
# create outbound article # create outbound article
sleep 10 sleep 10
article_outbound = Ticket::Article.create( article_outbound = Ticket::Article.create(
:ticket_id => ticket.id, :ticket_id => ticket.id,
:from => 'some_recipient@example.com', :from => 'some_recipient@example.com',
:to => 'some_sender@example.com', :to => 'some_sender@example.com',
:subject => 'some subject', :subject => 'some subject',
:message_id => 'some@id2', :message_id => 'some@id2',
:body => 'some message 2', :body => 'some message 2',
:internal => false, :internal => false,
:ticket_article_sender => Ticket::Article::Sender.where(:name => 'Agent').first, :sender => Ticket::Article::Sender.where(:name => 'Agent').first,
:ticket_article_type => Ticket::Article::Type.where(:name => 'email').first, :type => Ticket::Article::Type.where(:name => 'email').first,
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
ticket = Ticket.find(ticket.id) ticket = Ticket.find(ticket.id)
@ -87,7 +87,7 @@ class TicketTest < ActiveSupport::TestCase
assert_equal( ticket.first_response.to_s, article_outbound.created_at.to_s, 'ticket.first_response verify - outbound' ) assert_equal( ticket.first_response.to_s, article_outbound.created_at.to_s, 'ticket.first_response verify - outbound' )
assert_equal( ticket.close_time, nil, 'ticket.close_time verify - outbound' ) assert_equal( ticket.close_time, nil, 'ticket.close_time verify - outbound' )
ticket.ticket_state_id = Ticket::State.where(:name => 'closed').first.id ticket.state_id = Ticket::State.where(:name => 'closed').first.id
ticket.save ticket.save
ticket = Ticket.find(ticket.id) ticket = Ticket.find(ticket.id)
@ -112,15 +112,15 @@ class TicketTest < ActiveSupport::TestCase
assert( delete, "ticket destroy_all" ) assert( delete, "ticket destroy_all" )
ticket = Ticket.create( ticket = Ticket.create(
:title => 'some title äöüß', :title => 'some title äöüß',
:group => Group.lookup( :name => 'Users'), :group => Group.lookup( :name => 'Users'),
:customer_id => 2, :customer_id => 2,
:ticket_state => Ticket::State.lookup( :name => 'new' ), :state => Ticket::State.lookup( :name => 'new' ),
:ticket_priority => Ticket::Priority.lookup( :name => '2 normal' ), :priority => Ticket::Priority.lookup( :name => '2 normal' ),
:created_at => '2013-03-21 09:30:00 UTC', :created_at => '2013-03-21 09:30:00 UTC',
:updated_at => '2013-03-21 09:30:00 UTC', :updated_at => '2013-03-21 09:30:00 UTC',
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
assert( ticket, "ticket created" ) assert( ticket, "ticket created" )
assert_equal( ticket.escalation_time, nil, 'ticket.escalation_time verify' ) assert_equal( ticket.escalation_time, nil, 'ticket.escalation_time verify' )
@ -150,7 +150,7 @@ class TicketTest < ActiveSupport::TestCase
sla = Sla.create( sla = Sla.create(
:name => 'test sla 2', :name => 'test sla 2',
:condition => { "tickets.ticket_priority_id" =>["1", "2", "3"] }, :condition => { "tickets.priority_id" =>["1", "2", "3"] },
:data => { :data => {
"Mon"=>"Mon", "Tue"=>"Tue", "Wed"=>"Wed", "Thu"=>"Thu", "Fri"=>"Fri", "Sat"=>"Sat", "Sun"=>"Sun", "Mon"=>"Mon", "Tue"=>"Tue", "Wed"=>"Wed", "Thu"=>"Thu", "Fri"=>"Fri", "Sat"=>"Sat", "Sun"=>"Sun",
"beginning_of_workday" => "8:00", "beginning_of_workday" => "8:00",
@ -296,7 +296,7 @@ class TicketTest < ActiveSupport::TestCase
# set close time over time # set close time over time
ticket.update_attributes( ticket.update_attributes(
:ticket_state => Ticket::State.lookup( :name => 'closed' ) :state => Ticket::State.lookup( :name => 'closed' )
) )
assert_equal( ticket.escalation_time, nil, 'ticket.escalation_time verify 9' ) assert_equal( ticket.escalation_time, nil, 'ticket.escalation_time verify 9' )
@ -317,37 +317,37 @@ class TicketTest < ActiveSupport::TestCase
assert( delete, "ticket destroy" ) assert( delete, "ticket destroy" )
ticket = Ticket.create( ticket = Ticket.create(
:title => 'some title äöüß', :title => 'some title äöüß',
:group => Group.lookup( :name => 'Users'), :group => Group.lookup( :name => 'Users'),
:customer_id => 2, :customer_id => 2,
:ticket_state => Ticket::State.lookup( :name => 'new' ), :state => Ticket::State.lookup( :name => 'new' ),
:ticket_priority => Ticket::Priority.lookup( :name => '2 normal' ), :priority => Ticket::Priority.lookup( :name => '2 normal' ),
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
:created_at => '2013-03-28 23:49:00 UTC', :created_at => '2013-03-28 23:49:00 UTC',
:updated_at => '2013-03-28 23:49:00 UTC', :updated_at => '2013-03-28 23:49:00 UTC',
) )
assert( ticket, "ticket created" ) assert( ticket, "ticket created" )
assert_equal( ticket.title, 'some title äöüß', 'ticket.title verify' ) assert_equal( ticket.title, 'some title äöüß', 'ticket.title verify' )
assert_equal( ticket.group.name, 'Users', 'ticket.group verify' ) assert_equal( ticket.group.name, 'Users', 'ticket.group verify' )
assert_equal( ticket.ticket_state.name, 'new', 'ticket.state verify' ) assert_equal( ticket.state.name, 'new', 'ticket.state verify' )
# create inbound article # create inbound article
article_inbound = Ticket::Article.create( article_inbound = Ticket::Article.create(
:ticket_id => ticket.id, :ticket_id => ticket.id,
:from => 'some_sender@example.com', :from => 'some_sender@example.com',
:to => 'some_recipient@example.com', :to => 'some_recipient@example.com',
:subject => 'some subject', :subject => 'some subject',
:message_id => 'some@id', :message_id => 'some@id',
:body => 'some message', :body => 'some message',
:internal => false, :internal => false,
:ticket_article_sender => Ticket::Article::Sender.where(:name => 'Customer').first, :sender => Ticket::Article::Sender.where(:name => 'Customer').first,
:ticket_article_type => Ticket::Article::Type.where(:name => 'email').first, :type => Ticket::Article::Type.where(:name => 'email').first,
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
:created_at => '2013-03-28 23:49:00 UTC', :created_at => '2013-03-28 23:49:00 UTC',
:updated_at => '2013-03-28 23:49:00 UTC', :updated_at => '2013-03-28 23:49:00 UTC',
) )
ticket = Ticket.find(ticket.id) ticket = Ticket.find(ticket.id)
assert_equal( ticket.article_count, 1, 'ticket.article_count verify - inbound' ) assert_equal( ticket.article_count, 1, 'ticket.article_count verify - inbound' )
@ -359,19 +359,19 @@ class TicketTest < ActiveSupport::TestCase
# create outbound article # create outbound article
article_outbound = Ticket::Article.create( article_outbound = Ticket::Article.create(
:ticket_id => ticket.id, :ticket_id => ticket.id,
:from => 'some_recipient@example.com', :from => 'some_recipient@example.com',
:to => 'some_sender@example.com', :to => 'some_sender@example.com',
:subject => 'some subject', :subject => 'some subject',
:message_id => 'some@id2', :message_id => 'some@id2',
:body => 'some message 2', :body => 'some message 2',
:internal => false, :internal => false,
:ticket_article_sender => Ticket::Article::Sender.where(:name => 'Agent').first, :sender => Ticket::Article::Sender.where(:name => 'Agent').first,
:ticket_article_type => Ticket::Article::Type.where(:name => 'email').first, :type => Ticket::Article::Type.where(:name => 'email').first,
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
:created_at => '2013-03-29 08:00:03 UTC', :created_at => '2013-03-29 08:00:03 UTC',
:updated_at => '2013-03-29 08:00:03 UTC', :updated_at => '2013-03-29 08:00:03 UTC',
) )
ticket = Ticket.find(ticket.id) ticket = Ticket.find(ticket.id)
@ -389,36 +389,36 @@ class TicketTest < ActiveSupport::TestCase
ticket = Ticket.create( ticket = Ticket.create(
:title => 'some title äöüß', :title => 'some title äöüß',
:group => Group.lookup( :name => 'Users'), :group => Group.lookup( :name => 'Users'),
:customer_id => 2, :customer_id => 2,
:ticket_state => Ticket::State.lookup( :name => 'new' ), :state => Ticket::State.lookup( :name => 'new' ),
:ticket_priority => Ticket::Priority.lookup( :name => '2 normal' ), :priority => Ticket::Priority.lookup( :name => '2 normal' ),
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
:created_at => '2013-03-28 23:49:00 UTC', :created_at => '2013-03-28 23:49:00 UTC',
:updated_at => '2013-03-28 23:49:00 UTC', :updated_at => '2013-03-28 23:49:00 UTC',
) )
assert( ticket, "ticket created" ) assert( ticket, "ticket created" )
assert_equal( ticket.title, 'some title äöüß', 'ticket.title verify' ) assert_equal( ticket.title, 'some title äöüß', 'ticket.title verify' )
assert_equal( ticket.group.name, 'Users', 'ticket.group verify' ) assert_equal( ticket.group.name, 'Users', 'ticket.group verify' )
assert_equal( ticket.ticket_state.name, 'new', 'ticket.state verify' ) assert_equal( ticket.state.name, 'new', 'ticket.state verify' )
# create inbound article # create inbound article
article_inbound = Ticket::Article.create( article_inbound = Ticket::Article.create(
:ticket_id => ticket.id, :ticket_id => ticket.id,
:from => 'some_sender@example.com', :from => 'some_sender@example.com',
:subject => 'some subject', :subject => 'some subject',
:message_id => 'some@id', :message_id => 'some@id',
:body => 'some message', :body => 'some message',
:internal => false, :internal => false,
:ticket_article_sender => Ticket::Article::Sender.where(:name => 'Customer').first, :sender => Ticket::Article::Sender.where(:name => 'Customer').first,
:ticket_article_type => Ticket::Article::Type.where(:name => 'phone').first, :type => Ticket::Article::Type.where(:name => 'phone').first,
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
:created_at => '2013-03-28 23:49:00 UTC', :created_at => '2013-03-28 23:49:00 UTC',
:updated_at => '2013-03-28 23:49:00 UTC', :updated_at => '2013-03-28 23:49:00 UTC',
) )
ticket = Ticket.find(ticket.id) ticket = Ticket.find(ticket.id)
assert_equal( ticket.article_count, 1, 'ticket.article_count verify - inbound' ) assert_equal( ticket.article_count, 1, 'ticket.article_count verify - inbound' )
@ -444,15 +444,15 @@ class TicketTest < ActiveSupport::TestCase
assert( delete, "ticket destroy_all" ) assert( delete, "ticket destroy_all" )
ticket = Ticket.create( ticket = Ticket.create(
:title => 'some title äöüß', :title => 'some title äöüß',
:group => Group.lookup( :name => 'Users'), :group => Group.lookup( :name => 'Users'),
:customer_id => 2, :customer_id => 2,
:ticket_state => Ticket::State.lookup( :name => 'new' ), :state => Ticket::State.lookup( :name => 'new' ),
:ticket_priority => Ticket::Priority.lookup( :name => '2 normal' ), :priority => Ticket::Priority.lookup( :name => '2 normal' ),
:created_at => '2013-03-21 09:30:00 UTC', :created_at => '2013-03-21 09:30:00 UTC',
:updated_at => '2013-03-21 09:30:00 UTC', :updated_at => '2013-03-21 09:30:00 UTC',
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
assert( ticket, "ticket created" ) assert( ticket, "ticket created" )
assert_equal( ticket.escalation_time, nil, 'ticket.escalation_time verify' ) assert_equal( ticket.escalation_time, nil, 'ticket.escalation_time verify' )
@ -486,15 +486,15 @@ class TicketTest < ActiveSupport::TestCase
delete = ticket.destroy delete = ticket.destroy
assert( delete, "ticket destroy" ) assert( delete, "ticket destroy" )
ticket = Ticket.create( ticket = Ticket.create(
:title => 'some title äöüß', :title => 'some title äöüß',
:group => Group.lookup( :name => 'Users'), :group => Group.lookup( :name => 'Users'),
:customer_id => 2, :customer_id => 2,
:ticket_state => Ticket::State.lookup( :name => 'new' ), :state => Ticket::State.lookup( :name => 'new' ),
:ticket_priority => Ticket::Priority.lookup( :name => '2 normal' ), :priority => Ticket::Priority.lookup( :name => '2 normal' ),
:created_at => '2013-10-21 09:30:00 UTC', :created_at => '2013-10-21 09:30:00 UTC',
:updated_at => '2013-10-21 09:30:00 UTC', :updated_at => '2013-10-21 09:30:00 UTC',
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
assert( ticket, "ticket created" ) assert( ticket, "ticket created" )
assert_equal( ticket.escalation_time, nil, 'ticket.escalation_time verify' ) assert_equal( ticket.escalation_time, nil, 'ticket.escalation_time verify' )
@ -529,15 +529,15 @@ class TicketTest < ActiveSupport::TestCase
assert( delete, "sla destroy" ) assert( delete, "sla destroy" )
ticket = Ticket.create( ticket = Ticket.create(
:title => 'some title äöüß', :title => 'some title äöüß',
:group => Group.lookup( :name => 'Users'), :group => Group.lookup( :name => 'Users'),
:customer_id => 2, :customer_id => 2,
:ticket_state => Ticket::State.lookup( :name => 'new' ), :state => Ticket::State.lookup( :name => 'new' ),
:ticket_priority => Ticket::Priority.lookup( :name => '2 normal' ), :priority => Ticket::Priority.lookup( :name => '2 normal' ),
:created_at => '2013-10-21 06:30:00 UTC', :created_at => '2013-10-21 06:30:00 UTC',
:updated_at => '2013-10-21 06:30:00 UTC', :updated_at => '2013-10-21 06:30:00 UTC',
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
assert( ticket, "ticket created" ) assert( ticket, "ticket created" )
assert_equal( ticket.escalation_time, nil, 'ticket.escalation_time verify' ) assert_equal( ticket.escalation_time, nil, 'ticket.escalation_time verify' )
@ -575,15 +575,15 @@ class TicketTest < ActiveSupport::TestCase
test 'ticket escalation suspend' do test 'ticket escalation suspend' do
ticket = Ticket.create( ticket = Ticket.create(
:title => 'some title äöüß3', :title => 'some title äöüß3',
:group => Group.lookup( :name => 'Users'), :group => Group.lookup( :name => 'Users'),
:customer_id => 2, :customer_id => 2,
:ticket_state => Ticket::State.lookup( :name => 'new' ), :state => Ticket::State.lookup( :name => 'new' ),
:ticket_priority => Ticket::Priority.lookup( :name => '2 normal' ), :priority => Ticket::Priority.lookup( :name => '2 normal' ),
:created_at => '2013-06-04 09:00:00 UTC', :created_at => '2013-06-04 09:00:00 UTC',
:updated_at => '2013-06-04 09:00:00 UTC', :updated_at => '2013-06-04 09:00:00 UTC',
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
assert( ticket, 'ticket created' ) assert( ticket, 'ticket created' )
@ -591,7 +591,7 @@ class TicketTest < ActiveSupport::TestCase
History.add( History.add(
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:o_id => ticket.id, :o_id => ticket.id,
:id_to => 3, :id_to => 3,
:id_from => 2, :id_from => 2,
@ -606,7 +606,7 @@ class TicketTest < ActiveSupport::TestCase
History.add( History.add(
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:o_id => ticket.id, :o_id => ticket.id,
:id_to => 2, :id_to => 2,
:id_from => 3, :id_from => 3,
@ -631,7 +631,7 @@ class TicketTest < ActiveSupport::TestCase
History.add( History.add(
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:o_id => ticket.id, :o_id => ticket.id,
:id_to => 3, :id_to => 3,
:id_from => 2, :id_from => 2,
@ -680,15 +680,15 @@ class TicketTest < ActiveSupport::TestCase
# test Ticket created in state pending and closed without reopen or state change # test Ticket created in state pending and closed without reopen or state change
ticket = Ticket.create( ticket = Ticket.create(
:title => 'some title äöüß3', :title => 'some title äöüß3',
:group => Group.lookup( :name => 'Users'), :group => Group.lookup( :name => 'Users'),
:customer_id => 2, :customer_id => 2,
:ticket_state => Ticket::State.lookup( :name => 'pending' ), :state => Ticket::State.lookup( :name => 'pending' ),
:ticket_priority => Ticket::Priority.lookup( :name => '2 normal' ), :priority => Ticket::Priority.lookup( :name => '2 normal' ),
:created_at => '2013-06-04 09:00:00 UTC', :created_at => '2013-06-04 09:00:00 UTC',
:updated_at => '2013-06-04 09:00:00 UTC', :updated_at => '2013-06-04 09:00:00 UTC',
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
assert( ticket, 'ticket created' ) assert( ticket, 'ticket created' )
@ -697,7 +697,7 @@ class TicketTest < ActiveSupport::TestCase
History.add( History.add(
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:o_id => ticket.id, :o_id => ticket.id,
:id_to => 4, :id_to => 4,
:id_from => 3, :id_from => 3,
@ -746,15 +746,15 @@ class TicketTest < ActiveSupport::TestCase
# test Ticket created in state pending, changed state to openen, back to pending and closed # test Ticket created in state pending, changed state to openen, back to pending and closed
ticket = Ticket.create( ticket = Ticket.create(
:title => 'some title äöüß3', :title => 'some title äöüß3',
:group => Group.lookup( :name => 'Users'), :group => Group.lookup( :name => 'Users'),
:customer_id => 2, :customer_id => 2,
:ticket_state => Ticket::State.lookup( :name => 'pending' ), :state => Ticket::State.lookup( :name => 'pending' ),
:ticket_priority => Ticket::Priority.lookup( :name => '2 normal' ), :priority => Ticket::Priority.lookup( :name => '2 normal' ),
:created_at => '2013-06-04 09:00:00 UTC', :created_at => '2013-06-04 09:00:00 UTC',
:updated_at => '2013-06-04 09:00:00 UTC', :updated_at => '2013-06-04 09:00:00 UTC',
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
assert( ticket, 'ticket created' ) assert( ticket, 'ticket created' )
@ -762,7 +762,7 @@ class TicketTest < ActiveSupport::TestCase
History.add( History.add(
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:o_id => ticket.id, :o_id => ticket.id,
:id_to => 2, :id_to => 2,
:id_from => 3, :id_from => 3,
@ -777,7 +777,7 @@ class TicketTest < ActiveSupport::TestCase
History.add( History.add(
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:o_id => ticket.id, :o_id => ticket.id,
:id_to => 3, :id_to => 3,
:id_from => 2, :id_from => 2,
@ -792,7 +792,7 @@ class TicketTest < ActiveSupport::TestCase
History.add( History.add(
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:o_id => ticket.id, :o_id => ticket.id,
:id_to => 4, :id_to => 4,
:id_from => 3, :id_from => 3,
@ -841,15 +841,15 @@ class TicketTest < ActiveSupport::TestCase
### Test Ticket created in state pending, changed state to openen, back to pending and back to open then ### Test Ticket created in state pending, changed state to openen, back to pending and back to open then
### close ticket ### close ticket
ticket = Ticket.create( ticket = Ticket.create(
:title => 'some title äöüß3', :title => 'some title äöüß3',
:group => Group.lookup( :name => 'Users'), :group => Group.lookup( :name => 'Users'),
:customer_id => 2, :customer_id => 2,
:ticket_state => Ticket::State.lookup( :name => 'pending' ), :state => Ticket::State.lookup( :name => 'pending' ),
:ticket_priority => Ticket::Priority.lookup( :name => '2 normal' ), :priority => Ticket::Priority.lookup( :name => '2 normal' ),
:created_at => '2013-06-04 09:00:00 UTC', :created_at => '2013-06-04 09:00:00 UTC',
:updated_at => '2013-06-04 09:00:00 UTC', :updated_at => '2013-06-04 09:00:00 UTC',
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
assert( ticket, 'ticket created' ) assert( ticket, 'ticket created' )
@ -857,7 +857,7 @@ class TicketTest < ActiveSupport::TestCase
History.add( History.add(
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:o_id => ticket.id, :o_id => ticket.id,
:id_to => 2, :id_to => 2,
:id_from => 3, :id_from => 3,
@ -872,7 +872,7 @@ class TicketTest < ActiveSupport::TestCase
History.add( History.add(
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:o_id => ticket.id, :o_id => ticket.id,
:id_to => 3, :id_to => 3,
:id_from => 2, :id_from => 2,
@ -887,7 +887,7 @@ class TicketTest < ActiveSupport::TestCase
History.add( History.add(
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:o_id => ticket.id, :o_id => ticket.id,
:id_to => 2, :id_to => 2,
:id_from => 3, :id_from => 3,
@ -902,7 +902,7 @@ class TicketTest < ActiveSupport::TestCase
History.add( History.add(
:history_type => 'updated', :history_type => 'updated',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'ticket_state', :history_attribute => 'state',
:o_id => ticket.id, :o_id => ticket.id,
:id_to => 4, :id_to => 4,
:id_from => 3, :id_from => 3,

View file

@ -59,26 +59,26 @@ class TwitterTest < ActiveSupport::TestCase
hash = '#citheo42' + rand(9999).to_s hash = '#citheo42' + rand(9999).to_s
text = 'Today the weather is really nice... ' + hash text = 'Today the weather is really nice... ' + hash
ticket = Ticket.create( ticket = Ticket.create(
:group_id => group.id, :group_id => group.id,
:customer_id => user.id, :customer_id => user.id,
:title => text[0,40], :title => text[0,40],
:ticket_state_id => state.id, :state_id => state.id,
:ticket_priority_id => priority.id, :priority_id => priority.id,
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
assert( ticket, "outbound ticket created" ) assert( ticket, "outbound ticket created" )
article = Ticket::Article.create( article = Ticket::Article.create(
:ticket_id => ticket.id, :ticket_id => ticket.id,
:ticket_article_type_id => Ticket::Article::Type.where( :name => 'twitter status' ).first.id, :type_id => Ticket::Article::Type.where( :name => 'twitter status' ).first.id,
:ticket_article_sender_id => Ticket::Article::Sender.where( :name => 'Agent' ).first.id, :sender_id => Ticket::Article::Sender.where( :name => 'Agent' ).first.id,
:body => text, :body => text,
# :from => sender.name, # :from => sender.name,
# :to => to, # :to => to,
# :message_id => tweet.id, # :message_id => tweet.id,
:internal => false, :internal => false,
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
assert( article, "outbound article created" ) assert( article, "outbound article created" )
assert_equal( article.ticket.articles.count, 1 ) assert_equal( article.ticket.articles.count, 1 )
@ -173,19 +173,19 @@ class TwitterTest < ActiveSupport::TestCase
assert( ticket.articles, "ticket.articles exists" ) assert( ticket.articles, "ticket.articles exists" )
article_count = ticket.articles.count article_count = ticket.articles.count
assert( article_count ) assert( article_count )
# assert_equal( ticket.ticket_state.name, 'new' ) # assert_equal( ticket.state.name, 'new' )
# reply via ticket # reply via ticket
outbound_article = Ticket::Article.create( outbound_article = Ticket::Article.create(
:ticket_id => ticket.id, :ticket_id => ticket.id,
:ticket_article_type_id => Ticket::Article::Type.where( :name => 'twitter direct-message' ).first.id, :type_id => Ticket::Article::Type.where( :name => 'twitter direct-message' ).first.id,
:ticket_article_sender_id => Ticket::Article::Sender.where( :name => 'Agent' ).first.id, :sender_id => Ticket::Article::Sender.where( :name => 'Agent' ).first.id,
:body => text, :body => text,
# :from => sender.name, # :from => sender.name,
:to => 'me_bauer', :to => 'me_bauer',
:internal => false, :internal => false,
:updated_by_id => 1, :updated_by_id => 1,
:created_by_id => 1, :created_by_id => 1,
) )
assert( outbound_article, "outbound article created" ) assert( outbound_article, "outbound article created" )
assert_equal( outbound_article.ticket.articles.count, article_count + 1 ) assert_equal( outbound_article.ticket.articles.count, article_count + 1 )