Index: openacs-4/contrib/packages/project-manager/lib/subprojects.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/lib/Attic/subprojects.tcl,v diff -u -N -r1.1.2.2 -r1.1.2.3 --- openacs-4/contrib/packages/project-manager/lib/subprojects.tcl 2 May 2005 18:30:11 -0000 1.1.2.2 +++ openacs-4/contrib/packages/project-manager/lib/subprojects.tcl 12 May 2005 07:34:17 -0000 1.1.2.3 @@ -16,6 +16,8 @@ } } +set user_id [auth::require_login] + # Subprojects, using list-builder --------------------------------- template::list::create \ Index: openacs-4/contrib/packages/project-manager/tcl/project-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/tcl/Attic/project-procs.tcl,v diff -u -N -r1.6.2.21 -r1.6.2.22 --- openacs-4/contrib/packages/project-manager/tcl/project-procs.tcl 3 May 2005 09:01:28 -0000 1.6.2.21 +++ openacs-4/contrib/packages/project-manager/tcl/project-procs.tcl 12 May 2005 07:34:17 -0000 1.6.2.22 @@ -248,6 +248,14 @@ -party_id $creation_user \ -send_email_p "f" + # Set the parent_id to the package_id if this is not a subproject. + # Otherwise permission inheritance won't work. + # Update the context_id + if {[empty_string_p $parent_id]} { + set parent_id $package_id + } + + db_dml update_context_id "update acs_objects set context_id = :parent_id where object_id = :project_item_id" return $project_revision } Index: openacs-4/contrib/packages/project-manager/www/add-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/add-edit.tcl,v diff -u -N -r1.16.2.10 -r1.16.2.11 --- openacs-4/contrib/packages/project-manager/www/add-edit.tcl 4 May 2005 06:13:53 -0000 1.16.2.10 +++ openacs-4/contrib/packages/project-manager/www/add-edit.tcl 12 May 2005 07:34:17 -0000 1.16.2.11 @@ -53,28 +53,16 @@ set ongoing_by_default_p [parameter::get -parameter "OngoingByDefaultP" -default "f"] +# In EDIT mode, the setting of the title and context_bar in the "-edit" section of the form +# does not work, so I set it here. Luckily this if overwritten for new projects :). +set title "[_ project-manager.lt_Edit_a_project_term_l]" +set context_bar [ad_context_bar "[_ project-manager.Edit_project_term]"] + if {[exists_and_not_null project_item_id] && ![exists_and_not_null project_id]} { set project_id [pm::project::get_project_id -project_item_id $project_item_id] } - -if {[exists_and_not_null project_id]} { - set title "[_ project-manager.lt_Edit_a_project_term_l]" - set context_bar [ad_context_bar "[_ project-manager.Edit_project_term]"] - - # permissions - permission::require_permission -party_id $user_id -object_id $project_id -privilege write - -} else { - set title "[_ project-manager.lt_Add_a_project_term_lo]" - set context_bar [ad_context_bar "[_ project-manager.New_project_term]"] - - # permissions - permission::require_permission -party_id $user_id -object_id $package_id -privilege create -} - - if {[ad_form_new_p -key project_item_id]} { set logger_project "" set logger_values "" @@ -205,6 +193,9 @@ } \ -new_request { + set title "[_ project-manager.lt_Add_a_project_term_lo]" + set context_bar [ad_context_bar "[_ project-manager.New_project_term]"] + if {[string equal $ongoing_by_default_p t]} { set ongoing_p t } @@ -220,6 +211,12 @@ } \ -new_data { + set title "[_ project-manager.lt_Add_a_project_term_lo]" + set context_bar [ad_context_bar "[_ project-manager.New_project_term]"] + + # permissions + permission::require_permission -party_id $user_id -object_id $package_id -privilege create + set project_id [pm::project::new \ -project_name $project_name \ -project_code $project_code \ @@ -270,6 +267,13 @@ } -edit_data { + + set title "[_ project-manager.lt_Edit_a_project_term_l]" + set context_bar [ad_context_bar "[_ project-manager.Edit_project_term]"] + + # permissions + permission::require_permission -party_id $user_id -object_id $project_id -privilege write + # we need to pass the old_project_id to add-edit-2.tcl because # the new revision will not have any of the custom values in # it until it is edited. So we need to pull in these values Index: openacs-4/contrib/packages/project-manager/www/admin/update-projects.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/admin/Attic/update-projects.tcl,v diff -u -N -r1.1.2.4 -r1.1.2.5 --- openacs-4/contrib/packages/project-manager/www/admin/update-projects.tcl 2 May 2005 18:30:12 -0000 1.1.2.4 +++ openacs-4/contrib/packages/project-manager/www/admin/update-projects.tcl 12 May 2005 07:34:17 -0000 1.1.2.5 @@ -19,17 +19,21 @@ set context_id [ad_conn package_id] set peeraddr [ad_conn peeraddr] +set package_id [ad_conn package_id] ns_write "[_ project-manager.lt_Updating_projects_and] [_ project-manager.Starting]

" -set projects_list [db_list get_projects "select item_id from cr_items where content_type = 'pm_project'"] +set projects_list [db_list get_projects "select i.item_id from cr_items i, cr_folders f where i.content_type = 'pm_project' and i.parent_id = f.folder_id and f.package_id = :package_id"] foreach project $projects_list { pm::project::compute_status $project ns_write ". " + + # Update the context_ids so inheritance starts from the package_id. + db_dml update_context_ids "update acs_objects set context_id = :package_id where object_id = :project" }