history_log.rb 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # Copyright (C) 2012-2014 Zammad Foundation, http://zammad-foundation.org/
  2. module Ticket::HistoryLog
  3. =begin
  4. create log activity for this ticket
  5. ticket = Ticket.find(123)
  6. result = ticket.history_create( 'created', user_id )
  7. returns
  8. result = true # false
  9. =end
  10. def history_log (type, user_id, data = {})
  11. data[:o_id] = self['id']
  12. data[:history_type] = type
  13. data[:history_object] = self.class.name
  14. data[:related_o_id] = nil
  15. data[:related_history_object] = nil
  16. data[:created_by_id] = user_id
  17. History.add(data)
  18. end
  19. =begin
  20. get log activity for this ticket
  21. ticket = Ticket.find(123)
  22. result = ticket.history_get()
  23. returns
  24. result = [
  25. {
  26. :type => 'created',
  27. :object => 'Ticket',
  28. :created_by_id => 3,
  29. :created_at => "2013-08-19 20:41:33",
  30. },
  31. {
  32. :type => 'updated',
  33. :object => 'Ticket',
  34. :attribute => 'priority',
  35. :o_id => 1,
  36. :id_to => 3,
  37. :id_from => 2,
  38. :value_from => "low",
  39. :value_to => "high",
  40. :created_by_id => 3,
  41. :created_at => "2013-08-19 20:41:33",
  42. },
  43. ]
  44. =end
  45. def history_get(fulldata = false)
  46. list = History.list( self.class.name, self['id'], 'Ticket::Article' )
  47. return list if !fulldata
  48. # get related objects
  49. assets = {}
  50. list.each {|item|
  51. record = Kernel.const_get( item['object'] ).find( item['o_id'] )
  52. assets = record.assets(assets)
  53. if item['related_object']
  54. record = Kernel.const_get( item['related_object'] ).find( item['related_o_id'] )
  55. assets = record.assets(assets)
  56. end
  57. }
  58. return {
  59. :history => list,
  60. :assets => assets,
  61. }
  62. end
  63. end