|
|
@ -32,6 +32,10 @@ module Redmine |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
module ClassMethods |
|
|
|
module ClassMethods |
|
|
|
|
|
|
|
attr_writer :journal_class_name |
|
|
|
|
|
|
|
def journal_class_name |
|
|
|
|
|
|
|
defined?(@journal_class_name) ? @journal_class_name : superclass.journal_class_name |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def plural_name |
|
|
|
def plural_name |
|
|
|
self.name.underscore.pluralize |
|
|
|
self.name.underscore.pluralize |
|
|
@ -55,6 +59,8 @@ module Redmine |
|
|
|
def acts_as_journalized(options = {}, &block) |
|
|
|
def acts_as_journalized(options = {}, &block) |
|
|
|
activity_hash, event_hash, journal_hash = split_option_hashes(options) |
|
|
|
activity_hash, event_hash, journal_hash = split_option_hashes(options) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.journal_class_name = journal_hash.delete(:class_name) || "#{name.gsub("::", "_")}Journal" |
|
|
|
|
|
|
|
|
|
|
|
acts_as_activity(activity_hash) |
|
|
|
acts_as_activity(activity_hash) |
|
|
|
|
|
|
|
|
|
|
|
return if journaled? |
|
|
|
return if journaled? |
|
|
@ -77,13 +83,13 @@ module Redmine |
|
|
|
|
|
|
|
|
|
|
|
(journal_hash[:except] ||= []) << self.primary_key << inheritance_column << |
|
|
|
(journal_hash[:except] ||= []) << self.primary_key << inheritance_column << |
|
|
|
:updated_on << :updated_at << :lock_version << :lft << :rgt |
|
|
|
:updated_on << :updated_at << :lock_version << :lft << :rgt |
|
|
|
|
|
|
|
|
|
|
|
prepare_journaled_options(journal_hash) |
|
|
|
prepare_journaled_options(journal_hash) |
|
|
|
has_many :journals, journal_hash.merge({:class_name => journal_class.name, |
|
|
|
|
|
|
|
:foreign_key => "journaled_id"}), &block |
|
|
|
has_many :journals, journal_hash, &block |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def journal_class |
|
|
|
def journal_class |
|
|
|
journal_class_name = "#{name.gsub("::", "_")}Journal" |
|
|
|
|
|
|
|
if Object.const_defined?(journal_class_name) |
|
|
|
if Object.const_defined?(journal_class_name) |
|
|
|
Object.const_get(journal_class_name) |
|
|
|
Object.const_get(journal_class_name) |
|
|
|
else |
|
|
|
else |
|
|
|