article.rb 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # Copyright (C) 2012-2014 Zammad Foundation, http://zammad-foundation.org/
  2. # rubocop:disable ClassAndModuleChildren
  3. class Ticket::Article < ApplicationModel
  4. load 'ticket/article/assets.rb'
  5. include Ticket::Article::Assets
  6. load 'ticket/article/history_log.rb'
  7. include Ticket::Article::HistoryLog
  8. load 'ticket/article/activity_stream_log.rb'
  9. include Ticket::Article::ActivityStreamLog
  10. belongs_to :ticket
  11. belongs_to :type, class_name: 'Ticket::Article::Type'
  12. belongs_to :sender, class_name: 'Ticket::Article::Sender'
  13. belongs_to :created_by, class_name: 'User'
  14. belongs_to :updated_by, class_name: 'User'
  15. before_create :check_subject
  16. before_update :check_subject
  17. notify_clients_support
  18. activity_stream_support ignore_attributes: {
  19. type_id: true,
  20. sender_id: true,
  21. }
  22. history_support ignore_attributes: {
  23. type_id: true,
  24. sender_id: true,
  25. }
  26. private
  27. def check_subject
  28. return if !subject
  29. subject.gsub!(/\s|\t|\r/, ' ')
  30. end
  31. class Flag < ApplicationModel
  32. end
  33. class Sender < ApplicationModel
  34. validates :name, presence: true
  35. latest_change_support
  36. end
  37. class Type < ApplicationModel
  38. validates :name, presence: true
  39. latest_change_support
  40. end
  41. end