From a7c2b63fb61082bb54afe49880ebe0c21566ba3f Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Fri, 7 Dec 2007 13:35:38 +0000 Subject: [PATCH] Transaction and performance improvement on workflow copy when creating a new tracker. git-svn-id: http://redmine.rubyforge.org/svn/trunk@958 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/trackers_controller.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/trackers_controller.rb b/app/controllers/trackers_controller.rb index 0fc91b52..46edea54 100644 --- a/app/controllers/trackers_controller.rb +++ b/app/controllers/trackers_controller.rb @@ -37,8 +37,10 @@ class TrackersController < ApplicationController if request.post? and @tracker.save # workflow copy if !params[:copy_workflow_from].blank? && (copy_from = Tracker.find_by_id(params[:copy_workflow_from])) - copy_from.workflows.each do |w| - @tracker.workflows << w.clone + Workflow.transaction do + copy_from.workflows.find(:all, :include => [:role, :old_status, :new_status]).each do |w| + Workflow.create(:tracker_id => @tracker.id, :role => w.role, :old_status => w.old_status, :new_status => w.new_status) + end end end flash[:notice] = l(:notice_successful_create) -- 2.11.0