trabajo-afectivo/app/models/ticket/state.rb

52 lines
1.1 KiB
Ruby
Raw Normal View History

2014-02-03 19:23:00 +00:00
# Copyright (C) 2012-2014 Zammad Foundation, http://zammad-foundation.org/
2013-05-21 22:32:22 +00:00
class Ticket::State < ApplicationModel
belongs_to :state_type, :class_name => 'Ticket::StateType'
validates :name, :presence => true
=begin
list tickets by customer
states = Ticket::State.by_category('open') # open|closed
returns:
state objects
=end
def self.by_category(category)
if category == 'open'
return Ticket::State.where(
:state_type_id => Ticket::StateType.where( :name => ['new', 'open', 'pending reminder', 'pending action'] )
)
elsif category == 'closed'
2014-02-03 19:23:00 +00:00
return Ticket::State.where(
:state_type_id => Ticket::StateType.where( :name => ['closed'] )
)
2014-02-03 19:23:00 +00:00
end
raise "Unknown category '#{category}'"
end
=begin
check if state is ignored for escalation
ticket_state = Ticket::State.lookup( :name => 'state name' )
result = ticket_state.ignore_escalation?
returns:
true/false
=end
def ignore_escalation?
2014-02-03 19:23:00 +00:00
ignore_escalation = ['removed', 'closed', 'merged']
return true if ignore_escalation.include?( self.name )
return false
end
end