1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- # Copyright (C) 2012-2014 Zammad Foundation, http://zammad-foundation.org/
- # rubocop:disable ClassAndModuleChildren
- class Ticket::State < ApplicationModel
- belongs_to :state_type, class_name: 'Ticket::StateType'
- validates :name, presence: true
- latest_change_support
- =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'
- return Ticket::State.where(
- state_type_id: Ticket::StateType.where( name: ['closed'] )
- )
- end
- fail "Unknown category '#{category}'"
- end
- =begin
- check if state is ignored for escalation
- state = Ticket::State.lookup( :name => 'state name' )
- result = state.ignore_escalation?
- returns:
- true/false
- =end
- def ignore_escalation?
- ignore_escalation = %w(removed closed merged)
- return true if ignore_escalation.include?( name )
- false
- end
- end
|