Index: openacs-4/packages/tasks-portlet/lib/tasks.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/tasks-portlet/lib/tasks.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/tasks-portlet/lib/tasks.tcl 30 Nov 2005 16:09:45 -0000 1.1.2.2 @@ -0,0 +1,187 @@ +set user_id [ad_conn user_id] + +if { ![exists_and_not_null orderby] } { + set orderby "priority,desc" +} +if { ![exists_and_not_null status_id] } { + set status_id "1" +} + +set community_id [dotlrn_community::get_community_id] + +set user_space_p 1 + +if { ![empty_string_p $community_id] } { + set package_id [dotlrn_community::get_package_id_from_package_key \ + -package_key "tasks" \ + -community_id $community_id] + set user_space_p 0 +} + +if { [exists_and_not_null package_id] } { + set package_where_clause " and ao.package_id = :package_id" +} else { + set package_where_clause " and ao.creation_user = :user_id" +} + +if { ![contact::exists_p -party_id $contact_id] } { + set contact_id $user_id +} + +set party_id $contact_id +set tasks_url "tasks/" + + +set done_url [export_vars -url -base "${tasks_url}contact" {orderby {status_id 2} party_id}] +set not_done_url [export_vars -url -base "${tasks_url}contact" {orderby {status_id 1} party_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}] + + +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 + + 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 + + regsub -all " " $due_date {\ } due_date + regsub -all " " $completed_date {\ } completed_date +} + \ No newline at end of file