priority.rb 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  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 true if callback_loop
  11. priorities_with_default = Ticket::Priority.where(default_create: true)
  12. return true 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 true
  19. end
  20. if priorities_with_default.count > 1
  21. Ticket::Priority.all.each do |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. end
  27. end
  28. true
  29. end
  30. end