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.3 -r1.4
--- openacs-4/contrib/packages/project-manager/www/tasks.tcl 26 Jan 2004 15:39:40 -0000 1.3
+++ openacs-4/contrib/packages/project-manager/www/tasks.tcl 26 Feb 2004 15:28:34 -0000 1.4
@@ -18,6 +18,8 @@
orderby:optional
party_id:optional
{searchterm ""}
+ {mine_p "t"}
+ {status_id ""}
} -properties {
task_term:onevalue
context_bar:onevalue
@@ -39,11 +41,16 @@
set package_id [ad_conn package_id]
set user_id [ad_maybe_redirect_for_registration]
-# by default, show this user's tasks
-#if {![exists_and_not_null party_id]} {
-# set party_id $user_id
-#}
+# if mine_p is true, show only my tasks
+if {[string equal $mine_p t]} {
+ set party_id $user_id
+}
+# status defaults to open
+if {![exists_and_not_null status_id]} {
+ set status_id [project_manager::task::default_status_open]
+}
+
# permissions
permission::require_permission -party_id $user_id -object_id $package_id -privilege read
@@ -62,20 +69,28 @@
label "\#"
link_url_col item_url
link_html { title "View this project version" }
+ display_template {@tasks.task_id@}
}
title {
label "Subject"
}
full_name {
label "Who"
- display_template "@tasks.full_name@ (@tasks.role@)"
+ display_template "unassigned@tasks.full_name@ (@tasks.role@)"
}
description {
label "Description"
}
- end_date {
- label "Deadline"
+ slack_time {
+ label "Slack time"
+ display_template "@tasks.slack_time@@tasks.slack_time@"
}
+ latest_start_pretty {
+ label "Latest Start"
+ }
+ latest_finish_pretty {
+ label "Latest Finish"
+ }
actual_hours_worked {
label "Hours completed"
display_template "@tasks.actual_hours_worked@/@tasks.estimated_hours_work@"
@@ -93,17 +108,19 @@
-filters {
searchterm {
label "Search"
- where_clause {
- t.title ilike '%:searchterm%'
- }
}
party_id {
label "People"
- values {[db_list_of_lists get_people "select first_names || ' ' || last_name, u.party_id from all_users u, pm_task_assignment a where u.party_id = a.party_id order by upper(first_names), upper(last_name)"]}
+ values {[db_list_of_lists get_people "select distinct(first_names || ' ' || last_name) as fullname, u.person_id from persons u, pm_task_assignment a where u.person_id = a.party_id order by fullname"]}
where_clause {
- t.party_id = :party_id
+ 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}
+ }
} \
-orderby {
default_value task_number,asc
@@ -119,16 +136,67 @@
orderby_asc "t.title asc"
default_direction asc
}
+ full_name {
+ label "Who"
+ orderby_desc "p.first_names desc,p.last_name desc"
+ orderby_asc "p.first_names, p.last_name"
+ default_direction asc
+ }
+ description {
+ label "Description"
+ orderby_desc "t.description desc"
+ orderby_asc "t.description"
+ default_direction asc
+ }
+ slack_time {
+ label "Slack"
+ orderby_desc "(latest_start - earliest_start) desc"
+ orderby_asc "(latest_start - earliest_start)"
+ default_direction asc
+ }
+ latest_start_pretty {
+ label "Latest start"
+ orderby_desc "t.latest_start desc"
+ orderby_asc "t.latest_start"
+ default_direction asc
+ }
+ latest_finish_pretty {
+ label "Latest finish"
+ orderby_desc "t.latest_finish desc"
+ orderby_asc "t.latest_finish"
+ default_direction asc
+ }
+ actual_hours_worked {
+ label "Hours completed"
+ orderby_desc "t.actual_hours_worked desc"
+ orderby_asc "t.actual_hours_worked"
+ default_direction asc
+ }
} \
-orderby_name orderby \
-html {
width 100%
}
-db_multirow -extend { item_url } tasks tasks {
+db_multirow -extend { item_url latest_start_pretty latest_finish_pretty slack_time} tasks tasks {
} {
set item_url [export_vars -base "task-one" {task_id}]
+
+ set latest_start_pretty [lc_time_fmt $latest_start "%x"]
+ set latest_finish_pretty [lc_time_fmt $latest_finish "%x"]
+
+ if {[exists_and_not_null earliest_start_j]} {
+ if {$earliest_start_j < $today_j} {
+ set slack_time "[expr $latest_start_j - $today_j] days"
+ } else {
+ set slack_time "[expr $latest_start_j - $earliest_start_j] days"
+ }
+ } else {
+ set slack_time "n/a"
+ }
+
+
}