Index: openacs-4/packages/datamanager/www/one-object-move.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/datamanager/www/Attic/one-object-move.tcl,v diff -u -r1.1.2.5 -r1.1.2.6 --- openacs-4/packages/datamanager/www/one-object-move.tcl 28 Oct 2005 10:17:37 -0000 1.1.2.5 +++ openacs-4/packages/datamanager/www/one-object-move.tcl 2 Nov 2005 16:58:12 -0000 1.1.2.6 @@ -15,10 +15,33 @@ dotlrn::require_user_admin_community -community_id [dotlrn_community::get_community_id] +if { [llength $object_id] > 1 } { + set descendant_ids [list] + set ancestors_ids [list] + set checked_items [list] + + db_multirow tree_sortkey_list get_tree_sortkey {} { +#always add to the list the first element + if {[llength $ancestors_ids]=="0"} { + lappend ancestors_ids $item_id + } else { +#a flag for "descendancy" test. At the begin, item has no ancestors + set descendant_p "f" + foreach c_item $checked_items { + set ancestor_p [db_exec_plsql get_ancestors_p1 {}] + + if {$ancestor_p && $c_item != $tree_sortkey} {set descendant_p "t"} + } + if {$descendant_p eq "f"} {lappend ancestors_ids $item_id} else {lappend descendant_ids $item_id} + } + lappend checked_items $tree_sortkey + } +} + set object_data [list] set object_name [list] -foreach object $object_id { +foreach object $ancestors_ids { set object_type [datamanager::get_object_type -object_id $object] set object_data_temp [datamanager::get_object_data -object_type $object_type -object_id $object] lappend object_data $object_data_temp