Index: openacs-4/contrib/packages/project-manager/www/one.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/one.tcl,v
diff -u -r1.39 -r1.40
--- openacs-4/contrib/packages/project-manager/www/one.tcl 24 Jul 2004 08:33:55 -0000 1.39
+++ openacs-4/contrib/packages/project-manager/www/one.tcl 13 Jan 2005 13:54:36 -0000 1.40
@@ -22,6 +22,7 @@
@param use_project_code_p Specifies whether or not to show the user-specified project code 1 = yes
@param use_uncertain_completion_times_p Specifies whether or not to use PERT style uncertainty times 1 = yes
@param logger_days The number of days back to view logged entries
+ @param instance_id The process instance ID to show for tasks
} {
project_item_id:integer,optional
@@ -30,6 +31,7 @@
{orderby_tasks ""}
{logger_variable_id:integer ""}
{logger_days:integer "30"}
+ {instance_id:integer ""}
} -properties {
categories:onelist
@@ -100,6 +102,7 @@
set project_term_lower [parameter::get -parameter "projectname" -default "project"]
set task_term [parameter::get -parameter "TaskName" -default "Task"]
set use_goal_p [parameter::get -parameter "UseGoalP" -default "1"]
+set hide_done_tasks_p [parameter::get -parameter "HideDoneTaskP" -default "1"]
set use_project_code_p [parameter::get -parameter "UseUserProjectCodesP" -default "1"]
set use_uncertain_completion_times_p [parameter::get -parameter "UseUncertainCompletionTimesP" -default "1"]
set use_project_customizations_p [parameter::get -parameter "UseProjectCustomizationsP" -default "0"]
@@ -112,6 +115,34 @@
set create_p [permission::permission_p -object_id $package_id -privilege create]
+set process_instance_options [pm::process::instance_options \
+ -project_item_id $project_item_id \
+ -process_instance_id $instance_id]
+
+
+set process_reminder_url [export_vars -base process-reminder {instance_id project_item_id return_url}]
+
+if {[empty_string_p $process_instance_options]} {
+ set instance_html ""
+} else {
+
+ set instance_html "
+
"
+}
+
+# we do this so that the list builder templates don't add a where
+# clause when instance_id is set.
+if {[empty_string_p $instance_id]} {
+ unset instance_id
+}
+
# categories
set categories [list]
@@ -147,8 +178,6 @@
set logger_project_url "$logger_url?project_id=$project(logger_project)"
if {![exists_and_not_null logger_variable_id]} {
- #set logger_variable_id
- # [logger::variable::get_default_variable_id]
set logger_variable_id [logger::project::get_primary_variable \
-project_id $project(logger_project)]
}
@@ -162,9 +191,20 @@
set log_url "${logger_url}log?project_id=$project(logger_project)&pm_project_id=$project_item_id&return_url=$return_url&variable_id=$logger_variable_id"
-set assignee_add_self_widget "Add myself as "
+# There is no point showing an empty listbox, which happens if the user assigns all roles to himself. Doing it this way avoids another trip to the database.
+set select_list_html [pm::role::project_select_list -select_name "role_id" -project_item_id $project_item_id -party_id $user_id]
+if {[string compare $select_list_html ""]} {
+ set assignee_add_self_widget "Add myself as "
+ set roles_listbox_p 1
+} else {
+ set roles_listbox_p 0
+}
-set assignee_remove_self_url [export_vars -base project-assign-remove {project_item_id user_id return_url}]
+# Only need a 'remove myself' link if you are already assigned
+set assigned_p [pm::project::assigned_p -project_item_id $project_item_id -party_id $user_id]
+if {$assigned_p} {
+ set assignee_remove_self_url [export_vars -base project-assign-remove {project_item_id user_id return_url}]
+}
set assignee_edit_url [export_vars -base project-assign-edit {project_item_id return_url}]
@@ -187,64 +227,108 @@
set context [list [list "one?project_item_id=$project(parent_id)" "Parent"] "$project(project_name)"]
}
+set processes_html [pm::process::select_html]
+
# Tasks, using list-builder ---------------------------------
+# Hide finished tasks. This should be added as a filter, but I did not have time to look it up in the howto.
+
+if {$hide_done_tasks_p} {
+ set done_clause "and t.percent_complete < 100"
+} else {
+ set done_clause ""
+}
+
set process_link "process-use?project_item_id=$project_item_id"
+set default_orderby [pm::project::one_default_orderby]
+
+if {[exists_and_not_null orderby_tasks]} {
+ pm::project::one_default_orderby \
+ -set $orderby_tasks
+}
+
+
template::list::create \
-name tasks \
-multirow tasks \
- -key task_id \
+ -key task_item_id \
+ -html {width 100%} \
-elements {
- task_id {
+ task_item_id {
label "ID"
}
+ status_type {
+ label "Done"
+ display_template {
+
+ }
+ }
title {
label "Subject"
- display_template "@tasks.title@@tasks.title@ -- closed"
+ display_template "@tasks.title@@tasks.title@"
}
parent_task_id {
label "Dep"
display_template {
@tasks.parent_task_id@
}
}
+ priority {
+ label "Priority"
+ display_template {
+ @tasks.priority@
+ }
+ }
slack_time {
label "Slack"
- display_template "@tasks.slack_time@"
+ display_template "
+
+
+ @tasks.slack_time@
+
+ "
}
earliest_start {
label "Earliest Start"
- display_template "@tasks.earliest_start_pretty@@tasks.earliest_start_pretty@"
+ display_template "@tasks.earliest_start_pretty@@tasks.earliest_start_pretty@"
}
earliest_finish {
label "Earliest Finish"
- display_template "@tasks.earliest_finish_pretty@@tasks.earliest_finish_pretty@"
+ display_template "@tasks.earliest_finish_pretty@@tasks.earliest_finish_pretty@"
}
latest_start {
label "Latest Start"
- display_template "@tasks.latest_start_pretty@@tasks.latest_start_pretty@"
+ display_template "@tasks.latest_start_pretty@@tasks.latest_start_pretty@"
}
latest_finish {
label "Latest Finish"
- display_template "@tasks.latest_finish_pretty@@tasks.latest_finish_pretty@"
+ display_template "@tasks.latest_finish_pretty@@tasks.latest_finish_pretty@"
}
last_name {
label "Who"
display_template {
- @tasks.first_names@ @tasks.last_name@
+
+
+
+
+
+ @tasks.first_names@ @tasks.last_name@
+
+
+
+
+
+
}
}
} \
- -actions [list "Use process" $process_link "Use a process"] \
-bulk_actions {
"Edit" "task-add-edit" "Edit tasks"
} \
-bulk_action_export_vars {
project_item_id
- project_id
- {my_key 1}
{return_url}
} \
-sub_class {
@@ -254,6 +338,10 @@
project_item_id {
hide_p 1
}
+ instance_id {
+ hide_p 1
+ where_clause {ti.process_instance = :instance_id}
+ }
orderby_subproject {
hide_p 1
}
@@ -262,39 +350,44 @@
}
} \
-orderby {
- default_value latest_start,asc
+ default_value $default_orderby
title {
- orderby_asc "status_type desc, title asc, task_id asc"
- orderby_desc "status_type asc, title desc, task_id desc"
+ orderby_asc "title asc, task_item_id asc"
+ orderby_desc "title desc, task_item_id desc"
default_direction asc
}
+ priority {
+ orderby_asc "priority, earliest_start, task_item_id asc, u.first_names, u.last_name"
+ orderby_desc "priority desc, earliest_start desc, task_item_id desc, u.first_names, u.last_name"
+ default_direction desc
+ }
earliest_start {
- orderby_asc "status_type desc, earliest_start, task_id asc, u.first_names, u.last_name"
- orderby_desc "status_type asc, earliest_start desc, task_id desc, u.first_names, u.last_name"
+ orderby_asc "earliest_start, task_item_id asc, u.first_names, u.last_name"
+ orderby_desc "earliest_start desc, task_item_id desc, u.first_names, u.last_name"
default_direction asc
}
earliest_finish {
- orderby_asc "status_type desc, earliest_finish, task_id asc, u.first_names, u.last_name"
- orderby_desc "status_type asc, earliest_finish desc, task_id desc, u.first_names, u.last_name"
+ orderby_asc "earliest_finish, task_item_id asc, u.first_names, u.last_name"
+ orderby_desc "earliest_finish desc, task_item_id desc, u.first_names, u.last_name"
default_direction asc
}
latest_start {
- orderby_asc "status_type desc, latest_start, task_id asc, u.first_names, u.last_name"
- orderby_desc "status_type asc, latest_start desc, task_id desc, u.first_names, u.last_name"
+ orderby_asc "latest_start, task_item_id asc, u.first_names, u.last_name"
+ orderby_desc "latest_start desc, task_item_id desc, u.first_names, u.last_name"
default_direction asc
}
latest_finish {
- orderby_asc "status_type desc, latest_finish, task_id asc, u.first_names, u.last_name"
- orderby_desc "status_type asc, latest_finish desc, task_id desc, u.first_names, u.last_name"
+ orderby_asc "latest_finish, task_item_id asc, u.first_names, u.last_name"
+ orderby_desc "latest_finish desc, task_item_id desc, u.first_names, u.last_name"
default_direction asc
}
} \
-orderby_name orderby_tasks
-db_multirow -extend { item_url earliest_start_pretty earliest_finish_pretty latest_start_pretty latest_finish_pretty slack_time} tasks project_tasks_query {
+db_multirow -extend { item_url earliest_start_pretty earliest_finish_pretty latest_start_pretty latest_finish_pretty slack_time my_user_id} tasks project_tasks_query {
} {
- set item_url [export_vars -base "task-one" { revision_id task_id}]
+ set item_url [export_vars -base "task-one" { {task_id $task_item_id}}]
set earliest_start_pretty [lc_time_fmt $earliest_start "%x"]
set earliest_finish_pretty [lc_time_fmt $earliest_finish "%x"]
@@ -305,7 +398,8 @@
-earliest_start_j $earliest_start_j \
-today_j $today_j \
-latest_start_j $latest_start_j]
-
+
+ set my_user_id $user_id
}
@@ -365,6 +459,11 @@
-elements {
user_name {
label "Who"
+ display_template {
+
+ @people.user_name@
+
+ }
}
role_name {
label "Role"