last_owner_update.rb 749 B

12345678910111213141516171819202122232425262728293031323334
  1. # Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/
  2. class Observer::Ticket::LastOwnerUpdate < ActiveRecord::Observer
  3. observe 'ticket'
  4. def before_create(record)
  5. _check('create', record)
  6. end
  7. def before_update(record)
  8. _check('update', record)
  9. end
  10. private
  11. def _check(type, record)
  12. # return if we run import mode
  13. return true if Setting.get('import_mode')
  14. # check if owner has changed
  15. if type == 'update'
  16. return true if record.changes_to_save['owner_id'].blank?
  17. end
  18. # check if owner is nobody
  19. if record.owner_id.blank? || record.owner_id == 1
  20. record.last_owner_update_at = nil
  21. return true
  22. end
  23. record.last_owner_update_at = Time.zone.now
  24. end
  25. end