Index: openacs-4/contrib/packages/project-manager/www/task-assign-add-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-assign-add-edit.tcl,v diff -u -r1.8.2.3 -r1.8.2.4 --- openacs-4/contrib/packages/project-manager/www/task-assign-add-edit.tcl 20 May 2004 17:35:19 -0000 1.8.2.3 +++ openacs-4/contrib/packages/project-manager/www/task-assign-add-edit.tcl 2 Jul 2004 23:13:49 -0000 1.8.2.4 @@ -26,6 +26,7 @@ {edit_p "t"} {comment_list ""} {old_description:html ""} + {send_email_p "t"} } -properties { @@ -74,21 +75,21 @@ } if {[string equal $open_p 0]} { - ad_returnredirect $return_url + ad_returnredirect -message "Task closed" $return_url } } -# The number of assignments is set to 9, or the number of assignees + -# 2 if there are more than 5 assignees -set NUMBER_OF_ASSIGNMENTS 9 +# The number of assignments is set to 11, or the number of assignees + +# 3 if there are more than 5 assignees +set NUMBER_OF_ASSIGNMENTS 11 # find out the maximum number of assignees db_foreach get_count "select count(task_id) as my_count from pm_task_assignment where task_id in ([join $task_id ", "]) group by task_id" { if {$my_count > $NUMBER_OF_ASSIGNMENTS} { - set NUMBER_OF_ASSIGNMENTS [expr $my_count + 2] + set NUMBER_OF_ASSIGNMENTS [expr $my_count + 3] } } @@ -120,7 +121,7 @@ # permissions -if {[string equal $edit_p "t"]} { +if {[string is true $edit_p]} { set title "Edit $task_term_lower assignments" set context [list "Edit $task_term assignments"] } else { @@ -155,6 +156,10 @@ {value $return_url} } + {send_email_p:text(hidden) + {value $send_email_p} + } + {revisions:text(hidden) {value $revisions_pass}} @@ -266,33 +271,44 @@ regexp {(.*),(.*)} $pl match task_id_v num_value set t_id $task_id_v - set r_id $assignment_role($pl) + + # if they leave out the role, then use the default role + if {[exists_and_not_null assignment_role($pl)]} { + set r_id $assignment_role($pl) + } else { + set r_id [pm::role::default] + } + set p_id $assignment_party($pl) # If there is a comment for this task, then display it # prominently in the email set my_comment $comment_value($t_id) set my_old_description $old_description_value($t_id) - pm::task::email_alert \ - -task_item_id $t_id \ - -user_id $user_id \ - -assignee_id $p_id \ - -assignee_role_name $role_oneline($r_id) \ - -edit_p $edit_p \ - -comment $my_comment \ - -description $descriptions($t_id) \ - -old_description $my_old_description \ - -subject $one_lines($t_id) \ - -work_min $est_hours_work_min($t_id) \ - -work_max $est_hours_work_max($t_id) \ - -work $est_hours_work($t_id) \ - -project_name $project_names($t_id) \ - -earliest_start $earliest_starts($item_id) \ - -earliest_finish $earliest_finishes($item_id) \ - -latest_start $latest_starts($item_id) \ - -latest_finish $latest_finishes($item_id) \ - -url "[parameter::get_from_package_key -package_key acs-kernel -parameter SystemURL][ad_conn package_url]task-one?task_id=$t_id" + if {[string is true $send_email_p]} { + pm::task::email_alert \ + -task_item_id $t_id \ + -user_id $user_id \ + -assignee_id $p_id \ + -assignee_role_name $role_oneline($r_id) \ + -edit_p $edit_p \ + -comment $my_comment \ + -description $descriptions($t_id) \ + -old_description $my_old_description \ + -subject $one_lines($t_id) \ + -work_min $est_hours_work_min($t_id) \ + -work_max $est_hours_work_max($t_id) \ + -work $est_hours_work($t_id) \ + -project_name $project_names($t_id) \ + -earliest_start $earliest_starts($item_id) \ + -earliest_finish $earliest_finishes($item_id) \ + -latest_start $latest_starts($item_id) \ + -latest_finish $latest_finishes($item_id) \ + -url "[parameter::get_from_package_key -package_key acs-kernel -parameter SystemURL][ad_conn package_url]task-one?task_id=$t_id" + } else { + ns_log Debug "User $user_id elected to not send out email while editing task_item_id $t_id" + } # we only want to do this for new people # notification::request::new \ @@ -381,7 +397,14 @@ regexp {(.*),(.*)} $pl match task_id_v num_value set t_id $task_id_v - set r_id $assignment_role($pl) + + # if they leave out the role, then use the default role + if {[exists_and_not_null assignment_role($pl)]} { + set r_id $assignment_role($pl) + } else { + set r_id [pm::role::default] + } + set p_id $assignment_party($pl) db_dml add_assignment { } @@ -391,13 +414,13 @@ } -after_submit { if {[exists_and_not_null return_url]} { - ad_returnredirect $return_url + ad_returnredirect -message "Task assignments saved" $return_url } else { if {[llength $task_id] > 1} { - ad_returnredirect "tasks" + ad_returnredirect -message "Task assignments saved" "tasks" } else { - ad_returnredirect "task-one?task_id=$task_id" + ad_returnredirect -message "Task assignments saved" "task-one?task_id=$task_id" } } ad_script_abort @@ -467,4 +490,3 @@ incr index } -