Index: openacs-4/packages/acs-tcl/tcl/apm-install-procs-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-install-procs-oracle.xql,v diff -u -N -r1.19 -r1.20 --- openacs-4/packages/acs-tcl/tcl/apm-install-procs-oracle.xql 31 Mar 2010 01:21:00 -0000 1.19 +++ openacs-4/packages/acs-tcl/tcl/apm-install-procs-oracle.xql 31 Mar 2010 18:08:59 -0000 1.20 @@ -259,7 +259,7 @@ - + begin :1 := apm.parameter_p( @@ -269,7 +269,7 @@ - + begin :1 := apm.register_parameter( Index: openacs-4/packages/acs-tcl/tcl/apm-install-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-install-procs-postgresql.xql,v diff -u -N -r1.19 -r1.20 --- openacs-4/packages/acs-tcl/tcl/apm-install-procs-postgresql.xql 31 Mar 2010 00:46:16 -0000 1.19 +++ openacs-4/packages/acs-tcl/tcl/apm-install-procs-postgresql.xql 31 Mar 2010 18:08:59 -0000 1.20 @@ -200,13 +200,13 @@ - + select apm__parameter_p(:descendent_package_key, :parameter_name); - + select apm__register_parameter(null, :descendent_package_key, :parameter_name, :description, :scope, :datatype, :default_value, Index: openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl,v diff -u -N -r1.102 -r1.103 --- openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl 28 Mar 2010 01:13:17 -0000 1.102 +++ openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl 31 Mar 2010 18:08:59 -0000 1.103 @@ -866,6 +866,9 @@ $package_key $version_name \ $version_uri $summary $description $description_format $vendor $vendor_uri $auto_mount $release_date] apm_version_upgrade $version_id + apm_package_install_dependencies -callback $callback \ + $version(embeds) $version(extends) $version(provides) $version(requires) $version_id + apm_build_one_package_relationships $package_key apm_package_upgrade_parameters -callback $callback $version(parameters) $package_key } else { @@ -884,24 +887,20 @@ } apm_load_catalog_files $package_key + apm_package_install_dependencies -callback $callback \ + $version(embeds) $version(extends) $version(provides) $version(requires) $version_id + apm_build_one_package_relationships $package_key + apm_copy_inherited_params $package_key # Install the parameters for the version. apm_package_install_parameters -callback $callback $version(parameters) $package_key } # Update all other package information. - apm_package_install_dependencies -callback $callback \ - $version(embeds) $version(extends) $version(provides) $version(requires) $version_id apm_package_install_owners -callback $callback $version(owners) $version_id apm_package_install_callbacks -callback $callback $version(callbacks) $version_id apm_build_one_package_relationships $package_key - if { $upgrade_p } { - apm_copy_descendent_params $package_key - } else { - apm_copy_inherited_params $package_key - } - apm_callback_and_log $callback "

Installed $version(package-name), version $version(name).

" } { global errorInfo @@ -987,17 +986,17 @@ return $version_id } -ad_proc apm_copy_descendent_params { new_package_key } { - Copy new parameters in the package to its descendents. Called when a package is - upgraded. + +ad_proc apm_copy_param_to_descendents { new_package_key parameter_name } { + Copy a new parameter in a package to its descendents. Called when a package is + upgraded or a parameter added in the APM. } { + db_1row param {} foreach descendent_package_key [nsv_get apm_package_descendents $new_package_key] { - db_foreach descendent_params {} { - if { [db_exec_plsql param_exists {}] } { - error "$parameter_name already exists in package $descendent_package_key" - } else { - db_exec_plsql copy_descendent_param {} - } + if { [db_exec_plsql param_exists {}] } { + error "$parameter_name already exists in package $descendent_package_key" + } else { + db_exec_plsql copy_descendent_param {} } } } Index: openacs-4/packages/acs-tcl/tcl/apm-install-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-install-procs.xql,v diff -u -N -r1.8 -r1.9 --- openacs-4/packages/acs-tcl/tcl/apm-install-procs.xql 31 Mar 2010 00:46:16 -0000 1.8 +++ openacs-4/packages/acs-tcl/tcl/apm-install-procs.xql 31 Mar 2010 18:08:59 -0000 1.9 @@ -89,12 +89,12 @@
- + select ap.* from apm_parameters ap where package_key = :new_package_key - and scope = 'instance' + and parameter_name = :parameter_name Index: openacs-4/packages/acs-tcl/tcl/apm-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-procs.tcl,v diff -u -N -r1.86 -r1.87 --- openacs-4/packages/acs-tcl/tcl/apm-procs.tcl 25 Mar 2010 01:02:16 -0000 1.86 +++ openacs-4/packages/acs-tcl/tcl/apm-procs.tcl 31 Mar 2010 18:08:59 -0000 1.87 @@ -1000,6 +1000,12 @@ set parameter_id [db_exec_plsql parameter_register {}] + # Propagate to descendents if it's an instance parameter. + + if { $scope eq "instance" } { + apm_copy_param_to_descendents $package_key $parameter_name + } + # Update the cache. db_foreach apm_parameter_cache_update { } {