Index: openacs-4/packages/logger/lib/entries-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/logger/lib/entries-postgresql.xql,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/logger/lib/entries-postgresql.xql	3 Jun 2004 21:08:23 -0000	1.2
+++ openacs-4/packages/logger/lib/entries-postgresql.xql	13 Jun 2006 06:43:39 -0000	1.3
@@ -42,14 +42,11 @@
            lp.project_id,
            lp.name as project_name,
            $task_select
+	   $category_select
            submitter.person_id as user_id,
-           submitter.first_names || ' ' || submitter.last_name as user_name,
-           c.category_id,
-           c.tree_id
+           submitter.first_names || ' ' || submitter.last_name as user_name
     from   logger_entries le 
-           LEFT OUTER JOIN 
-             category_object_map_tree c 
-             ON (c.object_id = le.entry_id)
+	   $category_left_join
            $task_left_join
            logger_projects lp,
            acs_objects ao,
Index: openacs-4/packages/logger/lib/entries.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/logger/lib/entries.tcl,v
diff -u -r1.22 -r1.23
--- openacs-4/packages/logger/lib/entries.tcl	13 Jun 2006 05:12:45 -0000	1.22
+++ openacs-4/packages/logger/lib/entries.tcl	13 Jun 2006 06:43:39 -0000	1.23
@@ -154,7 +154,15 @@
 
 set tree_ids [array names tree_id_array]
 
+if {$tree_ids eq ""} {
+    set category_select ""
+    set category_left_join ""
+} else {
+    set category_select "c.category_id,c.tree_id,"
+    set category_left_join "LEFT OUTER JOIN category_object_map_tree c ON (c.object_id = le.entry_id)"
+}
 
+
 # Projections
 set projection_values [list]
 if { [exists_and_not_null project_id] } {
@@ -237,10 +245,6 @@
         link_url_eval {[export_vars -base "${my_base_url}log" { entry_id }]}
         link_html { title "[_ logger.View_this_entry]" }
     }
-    task_name {
-        label "[_ logger.Task]"
-        link_url_eval {[export_vars -base "${my_project_manager_url}task-one" { task_id }]}
-    }
     description_long {
         label "[_ logger.Description]"
         display_eval {[string_truncate -len 400 -- $description]}
@@ -486,16 +490,18 @@
 
 if {$show_tasks_p} {
     lappend normal_row task_name {}
+    lappend elements task_name {
+	label "[_ logger.Task]"
+	link_url_eval {[export_vars -base "${my_project_manager_url}task-one" { task_id }]}
+    }
 }
 
 lappend normal_row value {} description {}
 
-
-
 # we modify the queries if we are viewing tasks
 
-if { $show_tasks_p || [exists_and_not_null pm_task_id]} {
-    set task_select "case when task.title is null then '' else task.title end as task_name, task.item_id as task_id,"
+if { [exists_and_not_null pm_task_id]} {
+    set task_select "task.title as task_name, task.item_id as task_id,"
 
     set task_left_join {
         LEFT JOIN  (select 
@@ -617,7 +623,7 @@
 
 # some more documentation of what's going on here would be helpful. 
 
-set extend  { edit_url delete_url delete_onclick time_stamp_pretty edit_p delete_p my_base_url my_project_manager_url }
+set extend  { edit_url delete_url delete_onclick time_stamp_pretty edit_p delete_p my_base_url my_project_manager_url task_name task_id }
 foreach id $tree_ids {
     lappend extend c_${id}_category_id
 }
@@ -630,9 +636,28 @@
     set my_base_url $base_url 
     set my_project_manager_url $project_manager_url
 
-    if { ![empty_string_p $tree_id] && ![empty_string_p $category_id] } {
+    if { [exists_and_not_null tree_id] && [exists_and_not_null category_id] } {
         lappend row_categories($tree_id) $category_id
     }
+
+    if {$show_tasks_p} {
+	if {![exists_and_not_null task_id]} {
+	    set task_id ""
+	    set task_name ""
+	    db_0or1row get_task {
+		select 
+		r.title as task_name, 
+		i.item_id as task_id
+		from 
+		cr_items i, 
+		cr_revisions r,
+		acs_data_links ar
+		where r.item_id = ar.object_id_one and
+		i.live_revision = r.revision_id
+		and object_id_two = :entry_id
+	    }
+	}
+    }
     
     if { ![db_multirow_group_last_row_p -column entry_id] } {
         continue