Index: openacs-4/packages/xotcl-core/tcl/20-Ordered-Composite-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/20-Ordered-Composite-procs.tcl,v diff -u -r1.9 -r1.10 --- openacs-4/packages/xotcl-core/tcl/20-Ordered-Composite-procs.tcl 6 Jan 2007 03:29:18 -0000 1.9 +++ openacs-4/packages/xotcl-core/tcl/20-Ordered-Composite-procs.tcl 18 May 2007 09:01:22 -0000 1.10 @@ -135,5 +135,19 @@ } } } + + Class OrderedComposite::MethodCompare + OrderedComposite::MethodCompare instproc __compare {a b} { + set by [my set __orderby] + set x [$a $by] + set y [$b $by] + if {$x < $y} { + return -1 + } elseif {$x > $y} { + return 1 + } else { + return 0 + } + } } Index: openacs-4/packages/xotcl-core/tcl/generic-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/generic-procs.tcl,v diff -u -r1.62 -r1.63 --- openacs-4/packages/xotcl-core/tcl/generic-procs.tcl 15 May 2007 10:47:41 -0000 1.62 +++ openacs-4/packages/xotcl-core/tcl/generic-procs.tcl 18 May 2007 09:01:22 -0000 1.63 @@ -328,24 +328,11 @@ } { } - CrClass instproc getFormClass {-data} { - if {[info exists data]} { - # new style. does not depend on form variables - if {[$data exists item_id] && [$data set item_id] != 0 && [my exists edit_form]} { - return [my edit_form] - } else { - return [my form] - } + CrClass instproc getFormClass {-data:required} { + if {[$data exists item_id] && [$data set item_id] != 0 && [my exists edit_form]} { + return [my edit_form] } else { - set item_id [::xo::cc form_parameter item_id ""] ;# item_id should be be hardcoded - set new_p [::xo::cc form_parameter __new_p ""] - #my log "--F item_id '$item_id', confirmed_p new_p '$new_p' [my set item_id]" - if {$item_id ne "" && $new_p ne "1" && [my exists edit_form]} { - #my log "--F use edit_form [my edit_form]" - return [my edit_form] - } else { - return [my form] - } + return [my form] } } @@ -471,8 +458,12 @@ @param item_id id of the item to be retrieved. @param revision_id revision-id of the item to be retrieved. } { - my fetch_object -object ::[expr {$revision_id ? $revision_id : $item_id}] \ - -item_id $item_id -revision_id $revision_id + set object ::[expr {$revision_id ? $revision_id : $item_id}] + if {![my isobject $object]} { + my fetch_object -object $object \ + -item_id $item_id -revision_id $revision_id + } + return $object } CrClass ad_instproc delete { @@ -540,13 +531,15 @@ set offset "" } - return [::xo::db::sql select \ + set sql [::xo::db::sql select \ -vars $attribute_selection \ -from "acs_object_types, acs_objects, cr_items ci, cr_revisions cr $from_clause" \ -where [join $cond " and "] \ -orderby $orderby \ -start $start_clause \ -limit $limit -offset $offset] + #my log "--sql=$sql" + return $sql } CrClass ad_instproc instantiate_all {