Index: openacs-4/contrib/packages/project-manager/tcl/task-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/tcl/Attic/task-procs.tcl,v diff -u -r1.17 -r1.18 --- openacs-4/contrib/packages/project-manager/tcl/task-procs.tcl 14 Jul 2004 17:51:08 -0000 1.17 +++ openacs-4/contrib/packages/project-manager/tcl/task-procs.tcl 24 Jul 2004 08:33:54 -0000 1.18 @@ -84,7 +84,7 @@ FROM pm_tasks_revisionsx r, cr_items i, - pm_tasks t + pm_tasks_active t WHERE r.parent_id = :project_item_id and r.revision_id = i.live_revision and @@ -577,7 +577,7 @@ ad_proc -public pm::task::delete { -task_item_id:required } { - Deletes a given task + Marks a task deleted @author Jade Rubick (jader@bread.com) @creation-date 2004-03-10 @@ -588,12 +588,33 @@ @error No error thrown if there is no such task. } { - db_exec_plsql delete_task "select pm_task__delete_task_item(:task_item_id)" + db_dml mark_delete "update pm_tasks set deleted_p = 't' where task_id = :task_item_id" + pm::project::compute_status [pm::task::project_item_id -task_item_id $task_item_id] + return 1 } +ad_proc -public pm::task::project_item_id { + -task_item_id:required +} { + Returns the project item id for a given task + + @author Jade Rubick (jader@bread.com) + @creation-date 2004-07-16 + + @param task_item_id + + @return -1 if there is an error. + + @error +} { + return [db_string get_project_id "select parent_id from cr_items where item_id = :task_item_id" -default -1] +} + + + ad_proc -public pm::task::get_url { object_id } { @@ -1185,7 +1206,7 @@ p.party_id, (select one_line from pm_roles r where ta.role_id = r.role_id) as role FROM - pm_tasks ts, + pm_tasks_active ts, pm_tasks_revisionsx t, pm_task_assignment ta, acs_users_all p, @@ -1653,24 +1674,71 @@ } { set use_uncertain_completion_times_p [parameter::get -parameter "UseUncertainCompletionTimesP" -default "1"] - if {[string equal $use_uncertain_completion_times_p 1]} { + if {[string equal $percent_complete 100]} { + return 0 + } - set display_value1 [expr round($hours_work_min * $percent_complete / 100)] - set display_value2 [expr round($hours_work_max * $percent_complete / 100)] + if {[string equal $percent_complete 0]} { + return [pm::task::estimated_hours_work \ + -hours_work $hours_work \ + -hours_work_min $hours_work_min \ + -hours_work_max $hours_work_max] + } + if {[string is true $use_uncertain_completion_times_p]} { + + set display_value1 [expr round($hours_work_min * [expr 100 - $percent_complete] / double(100))] + set display_value2 [expr round($hours_work_max * [expr 100 - $percent_complete] / double(100))] + if {[string equal $display_value1 $display_value2]} { set display_value "$display_value1" } else { set display_value "$display_value1 - $display_value2" } } else { - set display_value [expr round($hours_work * $percent_complete / 100)] + set display_value [expr round($hours_work * [expr 100 - $percent_complete] / double(100))] } return $display_value } +ad_proc -public pm::task::estimated_hours_work { + -hours_work:required + -hours_work_min:required + -hours_work_max:required +} { + Displays the total estimated hours work in a consistent format + + @author Jade Rubick (jader@bread.com) + @creation-date 2004-06-02 + + @param hours_work + + @param hours_work_min + + @param hours_work_max + + @return + + @error +} { + set use_uncertain_completion_times_p [parameter::get -parameter "UseUncertainCompletionTimesP" -default "1"] + + if {[string equal $use_uncertain_completion_times_p 1]} { + if {[string equal $hours_work_min $hours_work_max]} { + set display_value "$hours_work_min" + } else { + set display_value "$hours_work_min - $hours_work_max" + } + } else { + set display_value "$estimated_hours_work" + } + + return $display_value +} + + ad_proc -public pm::task::assignee_email_list { -task_item_id:required } { @@ -1743,7 +1811,7 @@ FROM persons u, pm_task_assignment a, - pm_tasks ts + pm_tasks_active ts WHERE u.person_id = a.party_id and ts.task_id = a.task_id and