diff --git a/vendor/plugins/acts_as_journalized/lib/acts_as_journalized.rb b/vendor/plugins/acts_as_journalized/lib/acts_as_journalized.rb index 337c3abd60..7646d49c65 100644 --- a/vendor/plugins/acts_as_journalized/lib/acts_as_journalized.rb +++ b/vendor/plugins/acts_as_journalized/lib/acts_as_journalized.rb @@ -32,6 +32,10 @@ module Redmine end 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 self.name.underscore.pluralize @@ -55,6 +59,8 @@ module Redmine def acts_as_journalized(options = {}, &block) 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) return if journaled? @@ -77,13 +83,13 @@ module Redmine (journal_hash[:except] ||= []) << self.primary_key << inheritance_column << :updated_on << :updated_at << :lock_version << :lft << :rgt + 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 def journal_class - journal_class_name = "#{name.gsub("::", "_")}Journal" if Object.const_defined?(journal_class_name) Object.const_get(journal_class_name) else diff --git a/vendor/plugins/acts_as_journalized/lib/redmine/acts/journalized/options.rb b/vendor/plugins/acts_as_journalized/lib/redmine/acts/journalized/options.rb index 015ebfc592..9c0a2b97b0 100644 --- a/vendor/plugins/acts_as_journalized/lib/redmine/acts/journalized/options.rb +++ b/vendor/plugins/acts_as_journalized/lib/redmine/acts/journalized/options.rb @@ -63,11 +63,12 @@ module Redmine::Acts::Journalized options.symbolize_keys! options.reverse_merge!(Configuration.options) options.reverse_merge!( - :class_name => 'Journal', - :dependent => :delete_all + :class_name => journal_class_name, + :dependent => :delete_all, + :foreign_key => "journaled_id" ) options.reverse_merge!( - :order => "#{options[:class_name].constantize.table_name}.version ASC" + :order => "#{journal_class.table_name}.version ASC" ) class_inheritable_accessor :vestal_journals_options