瀏覽代碼

Fixed: bulk destroying parent and child issues raises a stale object error (#7920).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5283 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/1.2.0
Jean-Philippe Lang 13 年之前
父節點
當前提交
4e7835c68c
共有 2 個檔案被更改,包括 19 行新增1 行删除
  1. 7
    1
      app/controllers/issues_controller.rb
  2. 12
    0
      test/functional/issues_controller_test.rb

+ 7
- 1
app/controllers/issues_controller.rb 查看文件

@@ -236,7 +236,13 @@ class IssuesController < ApplicationController
return unless api_request?
end
end
@issues.each(&:destroy)
@issues.each do |issue|
begin
issue.reload.destroy
rescue ::ActiveRecord::RecordNotFound # raised by #reload if issue no longer exists
# nothing to do, issue was already deleted (eg. by a parent)
end
end
respond_to do |format|
format.html { redirect_back_or_default(:action => 'index', :project_id => @project) }
format.api { head :ok }

+ 12
- 0
test/functional/issues_controller_test.rb 查看文件

@@ -1323,6 +1323,18 @@ class IssuesControllerTest < ActionController::TestCase
assert !(Issue.find_by_id(1) || Issue.find_by_id(2) || Issue.find_by_id(6))
end
def test_destroy_parent_and_child_issues
parent = Issue.generate!(:project_id => 1, :tracker_id => 1)
child = Issue.generate!(:project_id => 1, :tracker_id => 1, :parent_issue_id => parent.id)
assert child.is_descendant_of?(parent.reload)
@request.session[:user_id] = 2
assert_difference 'Issue.count', -2 do
post :destroy, :ids => [parent.id, child.id], :todo => 'destroy'
end
assert_response 302
end
def test_default_search_scope
get :index
assert_tag :div, :attributes => {:id => 'quick-search'},

Loading…
取消
儲存