From 3c83d1c6464019dd0e1c8c0ca08798bb8570a6e0 Mon Sep 17 00:00:00 2001 From: Toshi MARUYAMA Date: Wed, 26 Mar 2014 01:47:48 +0000 Subject: [PATCH] fix always new lft and rgt are lft = 1, rgt = 2 (#6579) git-svn-id: http://svn.redmine.org/redmine/trunk@13009 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/issue.rb | 4 +--- .../lib/awesome_nested_set/awesome_nested_set.rb | 4 +++- test/test_helper.rb | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/models/issue.rb b/app/models/issue.rb index 0c4b9133c..5a98caa15 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -1287,9 +1287,7 @@ class Issue < ActiveRecord::Base if root_id.nil? # issue was just created self.root_id = (@parent_issue.nil? ? id : @parent_issue.root_id) - set_default_left_and_right - Issue.where(["id = ?", id]). - update_all(["root_id = ?, lft = ?, rgt = ?", root_id, lft, rgt]) + Issue.where(["id = ?", id]).update_all(["root_id = ?", root_id]) if @parent_issue move_to_child_of(@parent_issue) end diff --git a/lib/plugins/awesome_nested_set/lib/awesome_nested_set/awesome_nested_set.rb b/lib/plugins/awesome_nested_set/lib/awesome_nested_set/awesome_nested_set.rb index c831c48fc..259de5a08 100644 --- a/lib/plugins/awesome_nested_set/lib/awesome_nested_set/awesome_nested_set.rb +++ b/lib/plugins/awesome_nested_set/lib/awesome_nested_set/awesome_nested_set.rb @@ -540,7 +540,9 @@ module CollectiveIdea #:nodoc: # on creation, set automatically lft and rgt to the end of the tree def set_default_left_and_right - highest_right_row = nested_set_scope(:order => "#{quoted_right_column_full_name} desc").limit(1).lock(true).first + highest_right_row = + self.class.base_class.unscoped. + order("#{quoted_right_column_full_name} desc").limit(1).lock(true).first maxright = highest_right_row ? (highest_right_row[right_column_name] || 0) : 0 # adds the new node to the right of all existing nodes self[left_column_name] = maxright + 1 diff --git a/test/test_helper.rb b/test/test_helper.rb index bc1a350a2..14f2d003f 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -221,7 +221,8 @@ class ActiveSupport::TestCase # It seems correct behavior because of this line comment. # https://github.com/collectiveidea/awesome_nested_set/blame/199fca9bb9/lib/awesome_nested_set/model.rb#L278 def new_issue_lft - ::AwesomeNestedSet::VERSION > "2.1.6" ? Issue.maximum(:rgt) + 1 : 1 + # ::AwesomeNestedSet::VERSION > "2.1.6" ? Issue.maximum(:rgt) + 1 : 1 + Issue.maximum(:rgt) + 1 end end