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 -r1.6 --- openacs-4/contrib/packages/project-manager/www/tasks.tcl 12 Mar 2004 13:44:45 -0000 1.5 +++ openacs-4/contrib/packages/project-manager/www/tasks.tcl 27 Apr 2004 00:49:29 -0000 1.6 @@ -24,8 +24,14 @@ 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" +} + # --------------------------------------------------------------- # # terminology @@ -34,6 +40,12 @@ set project_term [parameter::get -parameter "ProjectName" -default "Project"] set project_term_lower [parameter::get -parameter "projectname" -default "project"] + +set exporting_vars { status_id party_id orderby mine_p } +set hidden_vars [export_vars -form $exporting_vars] +# how to get back here +set return_url "[ad_conn url]?[ad_conn query]" + # set up context bar set context [list "Tasks"] @@ -60,6 +72,18 @@ # Tasks, using list-builder --------------------------------- +if {![empty_string_p $searchterm]} { + + if {[regexp {([0-9]+)} $searchterm match query_digits]} { + set search_term_where " (upper(t.title) like upper('%$searchterm%') + or t.item_id = :query_digits) " + } else { + set search_term_where " upper(t.title) like upper('%$searchterm%')" + } +} else { + set search_term_where "" +} + template::list::create \ -name tasks \ -multirow tasks \ @@ -87,26 +111,60 @@ } latest_finish_pretty { label "Latest Finish" + display_template { + @tasks.latest_finish_pretty@ + } } actual_hours_worked { label "Hours completed" - display_template "@tasks.actual_hours_worked@/@tasks.estimated_hours_work@" + display_template "@tasks.actual_hours_worked@/@tasks.estimated_hours_work@ (@tasks.percent_complete@\%)" } + project_item_id { + label "P" + display_template "P" + } + log_url { + label "L" + display_template {L} + } } \ - -actions { - "Add task" "task-select-project" "Add a task" + -actions [list "Add task" [export_vars -base task-select-project {return_url}] "Add a task"] \ + -bulk_actions { + "Log hours" "log-bulk" "Log hours for several tasks" } \ + -bulk_action_export_vars { + {return_url} + } \ -sub_class { narrow } \ -filters { searchterm { label "Search" + where_clause {$search_term_where} } party_id { label "People" - 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"]} + 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, + cr_items t, + pm_tasks ts, + pm_tasks_revisionsx r + WHERE + u.person_id = a.party_id and + t.item_id = a.task_id and + t.item_id = ts.task_id and + ts.status = :status_id and + t.item_id = r.item_id and + t.live_revision = r.revision_id + ORDER BY + fullname"]} where_clause { ta.party_id = :party_id } @@ -178,10 +236,14 @@ } -db_multirow -extend { item_url latest_start_pretty latest_finish_pretty slack_time} tasks tasks { + + +db_multirow -extend { item_url latest_start_pretty latest_finish_pretty slack_time log_url} tasks tasks { } { set item_url [export_vars -base "task-one" {task_id}] + set log_url [export_vars -base "log" {{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"]