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" + } + + }