Index: openacs-4/contrib/packages/project-manager/www/tasks.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/tasks.tcl,v
diff -u -r1.5.2.22 -r1.5.2.23
--- openacs-4/contrib/packages/project-manager/www/tasks.tcl 29 Apr 2005 17:02:31 -0000 1.5.2.22
+++ openacs-4/contrib/packages/project-manager/www/tasks.tcl 30 Apr 2005 06:53:09 -0000 1.5.2.23
@@ -3,6 +3,7 @@
Main view page for tasks.
@author jader@bread.com
+ @author openacs@sussdorff.de (MS)
@creation-date 2003-12-03
@cvs-id $Id$
@@ -23,14 +24,18 @@
{searchterm ""}
{mine_p "t"}
{status_id ""}
+ {page ""}
+ {page_size 25}
role_id:optional
+ project_item_id:optional
} -properties {
task_term:onevalue
context:onevalue
tasks:multirow
hidden_vars:onevalue
}
+
# if someone clicks on a party, then we want to see those tasks.
if {[exists_and_not_null party_id]} {
set mine_p "f"
@@ -46,6 +51,13 @@
set use_days_p [parameter::get -parameter "UseDayInsteadOfHour" -default "t"]
+# Check if a project_item_id was passed in and store it
+if [exists_and_not_null project_item_id] {
+ set passed_project_item_id $project_item_id
+} else {
+ set passed_project_item_id 0
+}
+
set exporting_vars { status_id party_id orderby mine_p }
set hidden_vars [export_vars -form $exporting_vars]
# how to get back here
@@ -55,9 +67,12 @@
# set up context bar
set context [list "Tasks"]
+# Get the currently available Status
+set status_list [db_list_of_lists get_status_values "select description, status_id from pm_task_status order by status_type desc, description"]
+
# the unique identifier for this package
set package_id [ad_conn package_id]
-set user_id [auth::require_login]
+set user_id [ad_maybe_redirect_for_registration]
# if mine_p is true, show only my tasks
if {[string equal $mine_p t]} {
@@ -66,7 +81,10 @@
# status defaults to open
if {![exists_and_not_null status_id]} {
- set status_id [pm::task::default_status_open]
+ set status_where_clause ""
+# set status_id [pm::task::default_status_open]
+} else {
+ set status_where_clause {ts.status = :status_id}
}
# permissions
@@ -106,11 +124,11 @@
set elements {
- task_number {
+ task_id {
label "\#"
link_url_col item_url
link_html { title "View this project version" }
- display_template {@tasks.task_item_id@}
+ display_template {@tasks.task_id@}
}
title {
label "Subject"
@@ -122,30 +140,73 @@
role {
label "Role"
}
- latest_start_pretty {
- label "Latest Start"
- }
- latest_finish_pretty {
- label "Latest Finish"
- display_template {
- @tasks.latest_finish_pretty@
- }
- }
}
+# MS: This assumes that the status of "2" will always be closed.
+# It does not make sense to display the latest_start and finished times for already
+# Closed tasks
+
+if {$status_id != 2} {
+ append elements {
+ latest_start_pretty {
+ label "Latest Start"
+ }
+ latest_finish_pretty {
+ label "Latest Finish"
+ display_template {
+ @tasks.latest_finish_pretty@
+ }
+ }
+ }
+}
+
+append elements {
+ status {
+ label "Status"
+ }
+}
+
+# MS: This assumes that the status of "2" will always be closed.
+# It does not make sense to display the remaining hours for
+# Closed tasks
+
+if {$status_id != 2} {
+
+ if {[string is true $use_days_p]} {
+ append elements {
+ days_remaining {
+ label "Days work"
+ html {
+ align right
+ }
+ }
+ }
+ } else {
+ append elements {
+ hours_remaining {
+ label "Hours remaining"
+ html {
+ align right
+ }
+ }
+ }
+ }
+
+}
+
if {[string is true $use_days_p]} {
append elements {
- days_remaining {
- label "Days work"
+ actual_days_worked {
+ label "Days worked"
html {
align right
}
}
}
} else {
append elements {
- hours_remaining {
- label "Hours remaining"
+ actual_hours_worked {
+ label "Hours worked"
html {
align right
}
@@ -158,20 +219,21 @@
label "Project"
display_col project_name
link_url_eval {[export_vars -base one {project_item_id $tasks(project_item_id)}]}
+ hide_p {[ad_decode [exists_and_not_null project_item_id] 1 1 0]}
}
log_url {
label "Log"
display_template {L}
}
percent_complete {
- display_template ""
+ display_template ""
}
}
template::list::create \
-name tasks \
-multirow tasks \
- -key task_item_id \
+ -key task_id \
-elements $elements \
-actions [list "Add task" [export_vars -base task-select-project {return_url}] "Add a task"] \
-bulk_actions {
@@ -189,35 +251,43 @@
label "Search"
where_clause {$search_term_where}
}
+ status_id {
+ label "Status"
+ values {$status_list}
+ where_clause "$status_where_clause"
+ }
+ project_item_id {
+ label "Project"
+ values {[pm::project::get_list_of_open]}
+ where_clause {
+ t.parent_id = :project_item_id
+ }
+ }
role_id {
label "Roles"
values {[pm::role::select_list_filter]}
where_clause {
ta.role_id = :role_id
}
}
+
party_id {
label "People"
values {[pm::task::assignee_filter_select -status_id $status_id]}
where_clause {
ta.party_id = :party_id
}
}
- status_id {
- label "Status"
- values {[db_list_of_lists get_status_values "select description, status_id from pm_task_status order by status_type desc, description"]}
- where_clause {ts.status = :status_id}
- }
mine_p {
label "Show others' tasks"
}
} \
-orderby {
default_value $default_orderby
- task_number {
+ task_id {
label "Task \#"
- orderby_desc "ts.task_number desc, p.first_names, p.last_name"
- orderby_asc "ts.task_number asc, p.first_names, p.last_name"
+ orderby_desc "ts.task_id desc, p.first_names, p.last_name"
+ orderby_asc "ts.task_id asc, p.first_names, p.last_name"
default_direction asc
}
title {
@@ -256,20 +326,27 @@
orderby_asc "t.latest_finish, ts.task_id, p.first_names, p.last_name"
default_direction asc
}
+ status {
+ label "Status"
+ orderby_desc "status desc, t.latest_finish desc, ts.task_id, p.first_names, p.last_name"
+ orderby_asc "status asc, t.latest_finish desc, ts.task_id, p.first_names, p.last_name"
+ default_direction asc
+ }
} \
+ -page_size_variable_p 1 \
+ -page_size $page_size \
+ -page_flush_p 0 \
+ -page_query_name tasks_pagination \
-orderby_name orderby \
-html {
width 100%
}
-
-
-
db_multirow -extend { item_url latest_start_pretty latest_finish_pretty slack_time log_url hours_remaining days_remaining} tasks tasks {
} {
- set item_url [export_vars -base "task-one" {{task_id $task_item_id}}]
+ set item_url [export_vars -base "task-one" {{task_id $task_id}}]
- set log_url [export_vars -base "${logger_url}log" {{project_id $logger_project} {pm_task_id $task_item_id} {pm_project_id $project_item_id} {return_url $return_url}}]
+ set log_url [export_vars -base "${logger_url}log" {{project_id $logger_project} {pm_task_id $task_id} {pm_project_id $project_item_id} {return_url $return_url}}]
set latest_start_pretty [lc_time_fmt $latest_start "%x"]
set latest_finish_pretty [lc_time_fmt $latest_finish "%x"]
@@ -297,6 +374,8 @@
-estimated_hours_work_max $estimated_hours_work_max \
-percent_complete $percent_complete]
+ set actual_days_worked [expr $actual_hours_worked / 24]
+
}