]> source.dussan.org Git - redmine.git/commitdiff
apply Redmine awesome_nested_set 2.1.5 modification
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Mon, 20 Jan 2014 05:59:50 +0000 (05:59 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Mon, 20 Jan 2014 05:59:50 +0000 (05:59 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@12679 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/plugins/awesome_nested_set/lib/awesome_nested_set/awesome_nested_set.rb

index b101a5ef24df42400cf50ea3d557d56193081fc8..1a7ceae15d088e6187f9014b5eeeb12be7701498 100644 (file)
@@ -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