Index: openacs-4/packages/xowiki/tcl/package-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/package-procs.tcl,v diff -u -r1.86 -r1.87 --- openacs-4/packages/xowiki/tcl/package-procs.tcl 8 Sep 2007 09:58:24 -0000 1.86 +++ openacs-4/packages/xowiki/tcl/package-procs.tcl 12 Sep 2007 09:05:11 -0000 1.87 @@ -530,6 +530,13 @@ ::$folder_id set publish_status "production" ::$folder_id save_new ::$folder_id initialize_loaded_object + + if {[my get_parameter "with_general_comments" 0]} { + # Grant automatically permissions to registered user to + # add to general comments to objects under the folder. + permission::grant -party_id -2 -object_id $folder_id \ + -privilege general_comments_create + } } } #my log "--f new folder object = ::$folder_id" @@ -865,7 +872,7 @@ foreach n [ns_cache names xowiki_cache $key] {ns_cache flush xowiki_cache $n} } - Package instproc delete {-item_id -name} { + Package instproc delete {-item_id:required -name:required} { # # This delete method does not require an instanantiated object, # while the class-specific delete methods in xowiki-procs need these. @@ -883,7 +890,7 @@ if {$item_id ne ""} { #my log "--D trying to delete $item_id $name" set object_type [::xo::db::CrClass get_object_type -item_id $item_id] - # in case of PageTemplate and subtypes, we need to check + # In case of PageTemplate and subtypes, we need to check # for pages using this template set classes [concat $object_type [$object_type info heritage]] if {[lsearch $classes "::xowiki::PageTemplate"] > -1} { @@ -893,6 +900,18 @@ [_ xowiki.error-delete_entries_first [list count $count]]] } } + if {[my get_parameter "with_general_comments" 0]} { + # + # We have general comments. In a first step, we have to delete + # these, before we are able to delete the item. + # + set comment_ids [db_list [my qn get_comments] \ + "select comment_id from general_comments where object_id = $item_id"] + foreach comment_id $comment_ids { + my log "-- deleting comment $comment_id" + ::xo::db::sql::content_item del -item_id $comment_id + } + } $object_type delete -item_id $item_id my flush_references -item_id $item_id -name $name } else { Index: openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl,v diff -u -r1.97 -r1.98 --- openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 3 Sep 2007 21:07:53 -0000 1.97 +++ openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 12 Sep 2007 09:05:11 -0000 1.98 @@ -876,10 +876,14 @@ Page instproc delete {} { my instvar package_id item_id name - [my info class] delete -item_id $item_id - ::$package_id flush_references -item_id $item_id -name $name - ::$package_id returnredirect \ - [my query_parameter "return_url" [$package_id package_url]] + + # delete always via package + $package_id delete -item_id $item_id -name $name + + #[my info class] delete -item_id $item_id + #::$package_id flush_references -item_id $item_id -name $name + #::$package_id returnredirect \ +# [my query_parameter "return_url" [$package_id package_url]] } Page instproc save-tags {} {