Index: openacs-4/packages/tasks/lib/tasks-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/tasks/lib/tasks-postgresql.xql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/tasks/lib/tasks-postgresql.xql 27 Jul 2005 13:44:58 -0000 1.1 +++ openacs-4/packages/tasks/lib/tasks-postgresql.xql 28 Sep 2005 19:21:08 -0000 1.2 @@ -2,6 +2,44 @@ postgresql7.2 + + + select + t.task_id, + t.title, + t.description, + t.mime_type, + t.priority, + t.party_id, + p.title as process_title, + p.process_id, + tasks__relative_date(t.due_date) as due_date, + tasks__relative_date(t.completed_date) as completed_date, + ao.creation_user, + t.status_id, + t.process_instance_id, + contact__name(ao.creation_user) as creation_name, + CASE WHEN t.due_date < now() THEN 't' ELSE 'f' END as due_date_passed_p, + s.title as status, + t.object_id + from + t_task_status s, + acs_objects ao, + t_tasks t + left outer join t_process_instances pi + on (pi.process_instance_id = t.process_instance_id) + left outer join t_processes p + on (p.process_id = pi.process_id) + where + s.status_id = t.status_id + and ao.object_id = t.task_id + and ao.creation_user = :contact_id + and t.party_id = :contact_id + and t.start_date < now() + [template::list::orderby_clause -orderby -name tasks] + + + SELECT Index: openacs-4/packages/tasks/lib/tasks.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/tasks/lib/tasks.adp,v diff -u -r1.1 -r1.2 --- openacs-4/packages/tasks/lib/tasks.adp 27 Jul 2005 13:44:58 -0000 1.1 +++ openacs-4/packages/tasks/lib/tasks.adp 28 Sep 2005 19:21:08 -0000 1.2 @@ -1,18 +1,6 @@ - -
-

#tasks.Tasks#

-
- - class="first">@tasks.end_date@ -
- -
-
-
-
-
+

+#tasks.Add_Task# +#tasks.Assign_Process# +

+ Index: openacs-4/packages/tasks/lib/tasks.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/tasks/lib/tasks.tcl,v diff -u -r1.1 -r1.2 --- openacs-4/packages/tasks/lib/tasks.tcl 27 Jul 2005 13:44:58 -0000 1.1 +++ openacs-4/packages/tasks/lib/tasks.tcl 28 Sep 2005 19:21:08 -0000 1.2 @@ -1,61 +1,149 @@ -if { ![exists_and_not_null party_id] } { - error "you must supply a party_id" +set user_id [ad_conn user_id] +set tasks_url "/tasks/" + +if { ![info exist contact_id] } { + set contact_id $party_id } -set mine_p "f" -set status_id "1" -set role_id "2" -set orderby "priority,desc" +if { ![contact::exists_p -party_id $contact_id] } { + set contact_id $user_id +} -# \ -# -orderby_name orderby - -# \ -# -html { -# width 100% -# } +if { ![exists_and_not_null orderby] } { + set orderby "priority,desc" +} +if { ![exists_and_not_null status_id] } { + set status_id "1" +} +set done_url [export_vars -url -base "${tasks_url}contact" {orderby {status_id 2} {party_id $contact_id}}] +set not_done_url [export_vars -url -base "${tasks_url}contact" {orderby {status_id 1} {party_id $contact_id}}] +set return_url "[ad_conn url]?[ad_conn query]" +set add_url [export_vars -base "${tasks_url}task" {return_url orderby status_id {party_id $contact_id}}] -#set user_id [ad_conn user_id] +set package_id [ad_conn package_id] -#set project_id [tasks::project_id] -set project_id "26798" +template::list::create \ + -name tasks \ + -multirow tasks \ + -key task_id \ + -elements { + deleted_p { + label {[_ tasks.Not_Done]} + display_template { + [_ tasks.Done] + [_ tasks.Not_Done] + } + } + priority { + label "[_ tasks.Priority]" + display_template { + @tasks.priority@@tasks.priority@ + } + } + title { + label "[_ tasks.Task]" + display_template { + class="done">@tasks.title@ + +
+

+ @tasks.description_html;noquote@ +

+
+
+ } + } + process_title { + label "[_ tasks.Process]" + display_template { + @tasks.process_title@ + + @tasks.process_title@ + + } + } + date { + label "[_ tasks.Date]" + display_template { + @tasks.completed_date;noquote@ + + + « @tasks.due_date;noquote@ » + + + } + } + creation_user { + label "[_ tasks.Created_By]" + display_template { + class="done">@tasks.creation_name@ + } + } + } \ + -sub_class { + narrow + } \ + -filters { + party_id {} + } -orderby { + default_value "priority,desc" + date { + label "[_ tasks.Due]" + orderby_desc "CASE WHEN t.status_id = 1 THEN t.due_date ELSE t.completed_date END desc, t.priority, lower(t.title)" + orderby_asc "CASE WHEN t.status_id = 1 THEN t.due_date ELSE t.completed_date END asc, t.priority, lower(t.title)" + default_direction desc + } + priority { + label "[_ tasks.Priority]" + orderby_desc "t.status_id, t.priority desc, CASE WHEN t.status_id = 1 THEN t.due_date ELSE t.completed_date END desc, lower(t.title)" + orderby_asc "t.status_id, t.priority asc, CASE WHEN t.status_id = 1 THEN t.due_date ELSE t.completed_date END asc, lower(t.title)" + default_direction desc + } + title { + label "[_ tasks.Task]" + orderby_desc "lower(t.title) desc, t.priority desc, t.due_date asc" + orderby_asc "lower(t.title) asc, t.priority desc, t.due_date asc" + default_direction asc + } + process_title { + label "[_ tasks.Process]" + orderby_desc "lower(p.title) desc, t.priority desc, t.due_date asc" + orderby_asc "lower(p.title) asc, t.priority desc, t.due_date asc" + default_direction asc + } + creation_user { + label "[_ tasks.Created_By]" + orderby_desc "lower(contact__name(ao.creation_user)) desc, t.due_date asc, t.priority, lower(t.title)" + orderby_asc "lower(contact__name(ao.creation_user)) asc, t.due_date asc, t.priority, lower(t.title)" + default_direction asc + } + } +db_multirow -extend {creation_user_url contact_url complete_url done_p task_plus_url task_minus_url description_html task_url} -unclobber tasks get_tasks " " { + set creation_user_url [contact::url -party_id $creation_user] + regsub -all "/tasks/" $creation_user_url "/contacts/" creation_user_url + set complete_url [export_vars -base "${tasks_url}mark-completed" -url {task_id orderby {party_id $contact_id} return_url}] + if { $status_id == "2" } { + set done_p 1 + } else { + set done_p 0 + } + set task_url [export_vars -base "${tasks_url}task" -url {{party_id $contact_id} orderby status_id task_id}] + set task_plus_url [export_vars -base "${tasks_url}task-interval" -url {{action plus} {days 7} {party_id $contact_id} task_id status_id orderby return_url}] + set task_minus_url [export_vars -base "${tasks_url}task-interval" -url {{action minus} {days 7} {party_id $contact_id} task_id status_id orderby return_url}] + regsub -all "\r|\n" $description {LiNeBrEaK} description -template::multirow create tasks task_url title end_date overdue_p + set description_html [ad_html_text_convert \ + -from $mime_type \ + -to "text/html" \ + -truncate_len "400" \ + -more "[_ tasks.more]" \ + -- $description] + regsub -all {LiNeBrEaKLiNeBrEaK} $description_html {LiNeBrEaK} description_html + regsub -all {LiNeBrEaK} $description_html {\ \ \¶\ } description_html -set new_num 1 -db_foreach get_tasks " - select pt.task_id, - tasks__relative_date(ptr.end_date) as end_date, - cr.title, - ptr.priority, - CASE WHEN ptr.end_date < now() THEN '1' ELSE '0' END as overdue_p - from cr_items ci, - pm_tasks_revisions ptr, - pm_tasks pt, - cr_revisions cr - where ci.parent_id = :project_id - and ci.item_id = pt.task_id - and ci.latest_revision = ptr.task_revision_id - and ci.live_revision = ptr.task_revision_id - and ptr.task_revision_id = cr.revision_id - and pt.deleted_p = 'f' - and task_id in ( select task_id from pm_task_assignment where party_id = :party_id and role_id = '1' ) - and ptr.end_date is not null - and ptr.percent_complete < 100 - order by ptr.end_date asc, ptr.priority, upper(cr.title) -" { - - if { !$overdue_p } { - if { $new_num > 3 } { - break - } - incr new_num - } - set task_url [export_vars -base "/tasks/task" -url { party_id task_id }] - template::multirow append tasks $task_url $title $end_date $overdue_p + regsub -all " " $due_date {\ } due_date + regsub -all " " $completed_date {\ } completed_date } -# [template::list::filter_where_clauses -and -name tasks] -#set fred [template::list::orderby_clause -orderby -name tasks]