summaryrefslogtreecommitdiffstats
path: root/vendor
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2011-07-24 08:35:48 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2011-07-24 08:35:48 +0000
commit9957883c4ddf53cbbee40e8c952f0a7aa0d703ca (patch)
tree618444925c1aa49f703f743497195e684198de29 /vendor
parentd0889f9127c67fe6e8b604c8e259961dded9282b (diff)
downloadredmine-9957883c4ddf53cbbee40e8c952f0a7aa0d703ca.tar.gz
redmine-9957883c4ddf53cbbee40e8c952f0a7aa0d703ca.zip
Fixed: Error deleting issue with grandchild (#8880).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@6311 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'vendor')
-rw-r--r--vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb16
1 files changed, 8 insertions, 8 deletions
diff --git a/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb b/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb
index f46fb4335..fcf00b3c3 100644
--- a/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb
+++ b/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb
@@ -446,16 +446,16 @@ module CollectiveIdea #:nodoc:
def prune_from_tree
return if right.nil? || left.nil? || leaf? || !self.class.exists?(id)
- delete_method = acts_as_nested_set_options[:dependent] == :destroy ?
- :destroy_all : :delete_all
-
- # TODO: should destroy children (not descendants) when deleted_method is :destroy_all
self.class.base_class.transaction do
reload_nested_set
- nested_set_scope.send(delete_method,
- ["#{quoted_left_column_name} > ? AND #{quoted_right_column_name} < ?",
- left, right]
- )
+ if acts_as_nested_set_options[:dependent] == :destroy
+ children.each(&:destroy)
+ else
+ nested_set_scope.send(:delete_all,
+ ["#{quoted_left_column_name} > ? AND #{quoted_right_column_name} < ?",
+ left, right]
+ )
+ end
reload_nested_set
diff = right - left + 1
nested_set_scope.update_all(