history_log.rb 1.8 KB

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