From bcec29d5e42b6b93d42daa5980293ba252d00b31 Mon Sep 17 00:00:00 2001 From: Toshi MARUYAMA Date: Mon, 20 Jan 2014 05:59:50 +0000 Subject: [PATCH] apply Redmine awesome_nested_set 2.1.5 modification git-svn-id: http://svn.redmine.org/redmine/trunk@12679 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- .../lib/awesome_nested_set/awesome_nested_set.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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 b101a5ef2..1a7ceae15 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 @@ -198,14 +198,17 @@ module CollectiveIdea #:nodoc: # set left node[left_column_name] = indices[scope.call(node)] += 1 # find - where(["#{quoted_parent_column_full_name} = ? #{scope.call(node)}", node]).order("#{quoted_left_column_full_name}, #{quoted_right_column_full_name}, id").each{|n| set_left_and_rights.call(n) } + where(["#{quoted_parent_column_name} = ? #{scope.call(node)}", node]). + order(acts_as_nested_set_options[:order]). + each{|n| set_left_and_rights.call(n) } # set right node[right_column_name] = indices[scope.call(node)] += 1 node.save!(:validate => validate_nodes) end # Find root node(s) - root_nodes = where("#{quoted_parent_column_full_name} IS NULL").order("#{quoted_left_column_full_name}, #{quoted_right_column_full_name}, id").each do |root_node| + root_nodes = where("#{quoted_parent_column_name} IS NULL"). + order(acts_as_nested_set_options[:order]).each do |root_node| # setup index for this scope indices[scope.call(root_node)] ||= 0 set_left_and_rights.call(root_node) @@ -307,7 +310,7 @@ module CollectiveIdea #:nodoc: # Returns true if this is the end of a branch. def leaf? - persisted? && right.to_i - left.to_i == 1 + new_record? || (persisted? && right.to_i - left.to_i == 1) end # Returns true is this is a child node @@ -590,6 +593,7 @@ module CollectiveIdea #:nodoc: ["#{quoted_right_column_name} = (#{quoted_right_column_name} - ?)", diff] ) + reload # Don't allow multiple calls to destroy to corrupt the set self.skip_before_destroy = true end