summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/issue_moves_controller.rb4
-rw-r--r--app/models/issue.rb20
-rw-r--r--test/unit/issue_test.rb6
3 files changed, 15 insertions, 15 deletions
diff --git a/app/controllers/issue_moves_controller.rb b/app/controllers/issue_moves_controller.rb
index 06997183e..234d4d72e 100644
--- a/app/controllers/issue_moves_controller.rb
+++ b/app/controllers/issue_moves_controller.rb
@@ -36,10 +36,8 @@ class IssueMovesController < ApplicationController
moved_issues = []
@issues.each do |issue|
issue.reload
- issue.init_journal(User.current)
- issue.current_journal.notes = @notes if @notes.present?
call_hook(:controller_issues_move_before_save, { :params => params, :issue => issue, :target_project => @target_project, :copy => !!@copy })
- if r = issue.move_to_project(@target_project, new_tracker, {:copy => @copy, :attributes => extract_changed_attributes_for_move(params)})
+ if r = issue.move_to_project(@target_project, new_tracker, {:copy => @copy, :attributes => extract_changed_attributes_for_move(params), :notes => @notes})
moved_issues << r
else
unsaved_issue_ids << issue.id
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 5ccd40ee9..dcafade15 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -152,7 +152,13 @@ class Issue < ActiveRecord::Base
def move_to_project_without_transaction(new_project, new_tracker = nil, options = {})
options ||= {}
- issue = options[:copy] ? self.class.new.copy_from(self) : self
+
+ if options[:copy]
+ issue = self.class.new.copy_from(self)
+ else
+ issue = self
+ issue.init_journal(User.current, options[:notes])
+ end
if new_project && issue.project_id != new_project.id
# delete issue relations
@@ -190,14 +196,12 @@ class Issue < ActiveRecord::Base
if options[:attributes]
issue.attributes = options[:attributes]
end
+ if options[:copy] && options[:notes].present?
+ issue.init_journal(User.current, options[:notes])
+ issue.current_journal.notify = false
+ end
if issue.save
- if options[:copy]
- if current_journal && current_journal.notes.present?
- issue.init_journal(current_journal.user, current_journal.notes)
- issue.current_journal.notify = false
- issue.save
- end
- else
+ unless options[:copy]
# Manually update project_id on related time entries
TimeEntry.update_all("project_id = #{new_project.id}", {:issue_id => id})
diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb
index f973d32ce..524fb45b1 100644
--- a/test/unit/issue_test.rb
+++ b/test/unit/issue_test.rb
@@ -634,12 +634,10 @@ class IssueTest < ActiveSupport::TestCase
assert_equal User.current, @copy.author
end
- should "keep journal notes" do
+ should "create a journal with notes" do
date = Date.today
notes = "Notes added when copying"
- User.current = User.find(9)
- @issue.init_journal(User.current, notes)
- @copy = @issue.move_to_project(Project.find(3), Tracker.find(2), {:copy => true, :attributes => {:start_date => date}})
+ @copy = @issue.move_to_project(Project.find(3), Tracker.find(2), {:copy => true, :notes => notes, :attributes => {:start_date => date}})
assert_equal 1, @copy.journals.size
journal = @copy.journals.first