Index: openacs-4/packages/project-manager/tcl/project-procs-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/tcl/project-procs-postgresql.xql,v
diff -u -r1.11 -r1.12
--- openacs-4/packages/project-manager/tcl/project-procs-postgresql.xql 3 May 2006 18:02:11 -0000 1.11
+++ openacs-4/packages/project-manager/tcl/project-procs-postgresql.xql 26 May 2006 15:52:15 -0000 1.12
@@ -169,6 +169,20 @@
+
+
+
+
+ select i.parent_id
+ from cr_items i, cr_items ip, pm_projects p, pm_projects pp
+ where i.item_id = :project_id
+ and ip.item_id = i.parent_id
+ and p.project_id = i.latest_revision
+ and pp.project_id = ip.latest_revision
+
+
+
+
select
Index: openacs-4/packages/project-manager/tcl/project-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/tcl/project-procs.tcl,v
diff -u -r1.32 -r1.33
--- openacs-4/packages/project-manager/tcl/project-procs.tcl 3 May 2006 18:02:11 -0000 1.32
+++ openacs-4/packages/project-manager/tcl/project-procs.tcl 26 May 2006 15:52:15 -0000 1.33
@@ -1515,10 +1515,44 @@
return $task_list
}
+
+
+ad_proc -public pm::project::parent_project_id {
+ {-project_id:required}
+ {-respect_subproject:boolean}
+} {
+ get the project_id of the parent project
+} {
+ if {![db_0or1row project_parent {}] || ($respect_subproject_p && $subproject_p == "t")} {
+ return ""
+ } else {
+ return $parent_id
+ }
+}
+ad_proc -public pm::project::root_project {
+ {-project_item_id:required}
+ {-package_id ""}
+} {
+
+ Return the root project of a given subproject.
+
+ @param project_item_id Project who's root we are looking for
+
+ @return project_item_id of the root project
+} {
+ # get main project_id
+ set next_parent_id $project_item_id
+ while {![empty_string_p $next_parent_id]} {
+ set project_parent_id $next_parent_id
+ set next_parent_id [pm::project::parent_project_id -project_id $project_parent_id]
+ }
+ return $project_parent_id
+}
+
ad_proc -public pm::project::compute_parent_status {project_item_id} {
When a project is updated, or a task updated within a project, we need to
@@ -1545,7 +1579,7 @@
set my_item_id $parent_id
}
- # ns_log Notice "root: $root_folder , last_item_id $last_item_id"
+ ns_log Debug "root: $root_folder , last_item_id $last_item_id"
set return_code [pm::project::compute_status $last_item_id]
@@ -2270,7 +2304,13 @@
set date [lindex [split $task_deadline " "] 0]
set hours [lindex [split [lindex [split $task_deadline " "] 1] :] 0]
+ if {[string length $hours] > 1} {
+ set hours [string trimleft $hours]
+ }
set mins [lindex [split [lindex [split $task_deadline " "] 1] :] 1]
+ if {[string length $mins] > 1} {
+ set mins [string trimleft $mins]
+ }
set mins [expr ($hours*60) + $mins]
set date_j [dt_ansi_to_julian_single_arg $date]
@@ -2374,7 +2414,13 @@
set date [lindex [split $earliest_start($task_item) " "] 0]
set hours [lindex [split [lindex [split $earliest_start($task_item) " "] 1] :] 0]
+ if {[string length $hours] > 1} {
+ set hours [string trimleft $hours]
+ }
set mins [lindex [split [lindex [split $earliest_start($task_item) " "] 1] :] 1]
+ if {[string length $mins] > 1} {
+ set mins [string trimleft $mins]
+ }
set mins [expr ($hours*60) + $mins]
set date_j [dt_ansi_to_julian_single_arg $date]
@@ -2650,7 +2696,13 @@
set date [lindex [split $latest_finish($task_item) " "] 0]
set hours [lindex [split [lindex [split $latest_finish($task_item) " "] 1] :] 0]
+ if {[string length $hours] > 1} {
+ set hours [string trimleft $hours]
+ }
set mins [lindex [split [lindex [split $latest_finish($task_item) " "] 1] :] 1]
+ if {[string length $mins] > 1} {
+ set mins [string trimleft $mins]
+ }
set mins [expr ($hours*60) + $mins]
set date_j [dt_ansi_to_julian_single_arg $date]
@@ -2706,8 +2758,14 @@
set date [lindex [split $latest_finish($task_item) " "] 0]
set hours [lindex [split [lindex [split $latest_finish($task_item) " "] 1] :] 0]
+ if {[string length $hours] > 1} {
+ set hours [string trimleft $hours]
+ }
set hours [lc_parse_number $hours en_US]
set mins [lindex [split [lindex [split $latest_finish($task_item) " "] 1] :] 1]
+ if {[string length $mins] > 1} {
+ set mins [string trimleft $mins]
+ }
set mins [expr ($hours*60) + $mins]
set date_j [dt_ansi_to_julian_single_arg $date]
set today_j $date_j