priority.rb 1.0 KB

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