priority.rb 1011 B

12345678910111213141516171819202122232425262728293031323334
  1. # Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/
  2. class Ticket::Priority < ApplicationModel
  3. self.table_name = 'ticket_priorities'
  4. validates :name, presence: true
  5. after_create :ensure_defaults
  6. after_update :ensure_defaults
  7. after_destroy :ensure_defaults
  8. attr_accessor :callback_loop
  9. def ensure_defaults
  10. return if callback_loop
  11. priorities_with_default = Ticket::Priority.where(default_create: true)
  12. return if priorities_with_default.count == 1
  13. if priorities_with_default.count.zero?
  14. priority = Ticket::Priority.where(active: true).order(id: :asc).first
  15. priority.default_create = true
  16. priority.callback_loop = true
  17. priority.save!
  18. return
  19. end
  20. if priorities_with_default.count > 1
  21. Ticket::Priority.all.each { |local_priority|
  22. next if local_priority.id == id
  23. local_priority.default_create = false
  24. local_priority.callback_loop = true
  25. local_priority.save!
  26. }
  27. end
  28. end
  29. end