12345678910111213141516171819202122232425262728293031323334 |
- # Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/
- class Ticket::Priority < ApplicationModel
- self.table_name = 'ticket_priorities'
- validates :name, presence: true
- after_create :ensure_defaults
- after_update :ensure_defaults
- after_destroy :ensure_defaults
- attr_accessor :callback_loop
- def ensure_defaults
- return if callback_loop
- priorities_with_default = Ticket::Priority.where(default_create: true)
- return if priorities_with_default.count == 1
- if priorities_with_default.count.zero?
- priority = Ticket::Priority.where(active: true).order(id: :asc).first
- priority.default_create = true
- priority.callback_loop = true
- priority.save!
- return
- end
- if priorities_with_default.count > 1
- Ticket::Priority.all.each { |local_priority|
- next if local_priority.id == id
- local_priority.default_create = false
- local_priority.callback_loop = true
- local_priority.save!
- }
- end
- end
- end
|