Index: openacs-4/packages/acs-admin/www/apm/package-delete-2.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/apm/package-delete-2.tcl,v
diff -u -N -r1.1.1.1.4.1 -r1.1.1.1.4.2
--- openacs-4/packages/acs-admin/www/apm/package-delete-2.tcl 22 Jan 2003 18:28:20 -0000 1.1.1.1.4.1
+++ openacs-4/packages/acs-admin/www/apm/package-delete-2.tcl 5 Mar 2003 14:43:12 -0000 1.1.1.1.4.2
@@ -25,16 +25,37 @@
doc_body_append [apm_header [list "version-view?version_id=$version_id" "$pretty_name $version_name"] "Delete"]
+# Unmount all instances of this package with the Tcl API that invokes before-unmount callbacks
+db_foreach all_package_instances {
+ select site_nodes.node_id
+ from apm_packages, site_nodes
+ where apm_packages.package_id = site_nodes.object_id
+ and apm_packages.package_key = :package_key
+} {
+ set url [site_node::get_url -node_id $node_id]
+ doc_body_append "Unmounting package instance at url $url
"
+ site_node::unmount -node_id $node_id
+}
+
+# Delete the package instances with Tcl API that invokes before-uninstantiate callbacks
+db_foreach all_package_instances {
+ select package_id
+ from apm_packages
+ where package_key = :package_key
+} {
+ doc_body_append "Deleting package instance $package_id
"
+ apm_package_instance_delete $package_id
+}
+
+# Invoke the before-uninstall Tcl callback before the sql drop scripts
+apm_invoke_callback_proc -version_id $version_id -type before-uninstall
+
if {![empty_string_p $sql_drop_scripts]} {
doc_body_append "Now executing drop scripts.
" db_source_sql_file -callback apm_doc_body_callback "[acs_package_root_dir $package_key]/$path" doc_body_append ""