Index: openacs-4/packages/project-manager-portlet/lib/projects-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/lib/projects-postgresql.xql,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/project-manager-portlet/lib/projects-postgresql.xql	15 Sep 2005 22:43:53 -0000	1.5
+++ openacs-4/packages/project-manager-portlet/lib/projects-postgresql.xql	20 Mar 2006 12:20:56 -0000	1.6
@@ -14,14 +14,12 @@
         p.project_code,
         to_char(p.planned_end_date, 'YYYY-MM-DD HH24:MI:SS') as planned_end_date,
         p.ongoing_p,
-        p.customer_id as customer_id, f.package_id
-        FROM pm_projectsx p, 
-        cr_items i, 
+        p.customer_id as customer_id, p.object_package_id as package_id
+        FROM pm_projectsx p,
 	$extra_role_tables
-	cr_folders f
-        WHERE 
+        cr_items i
+        WHERE
         p.project_id = i.live_revision 
-	and i.parent_id = f.folder_id
 	$extra_role_where_clause
 	$extra_query
 	) proj
Index: openacs-4/packages/project-manager-portlet/lib/projects.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/lib/projects.tcl,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/project-manager-portlet/lib/projects.tcl	17 Nov 2005 16:18:19 -0000	1.8
+++ openacs-4/packages/project-manager-portlet/lib/projects.tcl	20 Mar 2006 12:20:56 -0000	1.9
@@ -50,7 +50,7 @@
 } else {
     set user_space_p 0
     set extra_role_tables ""
-    set extra_role_where_clause "and f.package_id in ($package_ids)"
+    set extra_role_where_clause "and p.object_package_id in ($package_ids)"
 }
 
 # --------------------------------------------------------------- #
@@ -78,12 +78,12 @@
 # Projects, using list-builder ---------------------------------
 
 # Set status
-if {![exists_and_not_null status_id]} {
+if {![exists_and_not_null status_id] } {
     set default_closed [pm::project::default_status_closed]
     set status_where_clause {proj.status_id <> :default_closed}
     set status_id ""
 } else {
-    set status_where_clause {proj.status_id = :status_id}
+    set status_where_clause "proj.status_id in ([join $status_id ,])"
 }
 
 # We want to set up a filter for each category tree.
@@ -220,6 +220,7 @@
 	}
 	planned_end_date {
 	    label "[_ project-manager.Planned_end_date]"
+            display_template "@projects.planned_end_date_lc@"
 	}
     } \
     -actions $actions \
@@ -268,10 +269,17 @@
         width 100%
     }
 
+if {[lsearch -exact $row_list project_status] == -1} {
+    set project_status_p 0
+} else {
+    set project_status_p 1
+}
+
 set count 0
 set more_p 0
+set fmt "[lc_get d_fmt] %X"
 
-db_multirow -extend { item_url customer_name } "projects" project_folders {
+db_multirow -extend { item_url customer_name planned_end_date_lc project_status } "projects" project_folders {
 } {
     incr count
     if {[string equal $count 26] } {
@@ -284,6 +292,8 @@
         set base_url $_base_url
     }
 
+    set planned_end_date_lc [lc_time_fmt $planned_end_date $fmt]
+
     set item_url [export_vars -base "${base_url}one" {project_item_id}]
     # root CR folder
     #set root_folder [pm::util::get_root_folder -package_id $package_id]
@@ -300,6 +310,11 @@
         
     }
     set customer_name [contact::name -party_id $customer_id]
+    set project_status [pm::project::get_status_description -project_item_id $project_item_id]
+
+    if {!$project_status_p} {
+	set project_name "[string index [lang::util::localize $project_status] 0]-$project_name"
+    }
 }
 
 
Index: openacs-4/packages/project-manager-portlet/www/project-manager-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/project-manager-portlet.adp,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/project-manager-portlet/www/project-manager-portlet.adp	25 Aug 2005 19:46:03 -0000	1.7
+++ openacs-4/packages/project-manager-portlet/www/project-manager-portlet.adp	20 Mar 2006 12:20:56 -0000	1.8
@@ -23,4 +23,4 @@
 
 
   <link rel="stylesheet" href="style.css" type="text/css" />
-      <include src="../lib/projects" orderby=@orderby;noquote@    elements="customer_name planned_end_date" package_id=@project_manager_id@ actions_p="0" bulk_p="0" assignee_id="" filter_p="0" base_url="@base_url@" fmt=@fmt@ is_observer_p="@is_observer_p@" page_num="@page_num@">
+      <include src="../lib/projects" orderby=@orderby;noquote@    elements="customer_name planned_end_date" package_id=@project_manager_id@ actions_p="0" bulk_p="0" assignee_id="" filter_p="0" base_url="@base_url@" fmt=@fmt@ is_observer_p="@is_observer_p@" page_num="@page_num@" status_id="@status_ids@">
Index: openacs-4/packages/project-manager-portlet/www/project-manager-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/project-manager-portlet.tcl,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/project-manager-portlet/www/project-manager-portlet.tcl	25 Aug 2005 19:46:03 -0000	1.5
+++ openacs-4/packages/project-manager-portlet/www/project-manager-portlet.tcl	20 Mar 2006 12:20:56 -0000	1.6
@@ -109,3 +109,4 @@
 set exporting_vars { status_id assignee_id orderby format }
 set hidden_vars [export_vars -form $exporting_vars]
 
+set status_ids [db_list get_all_open_states {}]
Index: openacs-4/packages/project-manager-portlet/www/project-manager-portlet.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/project-manager-portlet.xql,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/project-manager-portlet/www/project-manager-portlet.xql	21 Jul 2005 16:37:11 -0000	1.1
+++ openacs-4/packages/project-manager-portlet/www/project-manager-portlet.xql	20 Mar 2006 12:20:56 -0000	1.2
@@ -8,4 +8,12 @@
       </querytext>
 </fullquery>
 
+<fullquery name="get_all_open_states">
+      <querytext>
+    select status_id
+    from pm_project_status
+    where status_type = 'o'
+      </querytext>
+</fullquery>
+
 </queryset>
Index: openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.adp,v
diff -u -r1.15 -r1.16
--- openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.adp	19 Mar 2006 18:12:55 -0000	1.15
+++ openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.adp	20 Mar 2006 12:20:56 -0000	1.16
@@ -1,5 +1,6 @@
 <include src="@tasks_portlet@" 
 	party_id="@filter_party_id@" 
+	filter_group_id="@filter_group_id@" 
 	base_url="@base_url@" 
 	instance_id="@pm_package_id@"
 	display_mode="list" 
@@ -10,10 +11,17 @@
 	is_observer_filter="@is_observer_filter@"
 	status_id="1"
 	orderby_p="1"
+        orderby="end_date,asc"
 	bulk_actions_p="1"
 	tasks_portlet_p="t">
 
 <br>
-<a href="?page_num=@page_num@&is_observer_filter=f&filter_party_id=@user_id@" class="button">#project-manager-portlet.my_tasks#</a> |
-<a href="?page_num=@page_num@&is_observer_filter=t" class="button">#project-manager-portlet.pool_tasks#</a>
+<if @is_observer_filter@ eq m and @filter_group_id@ ne @group_id@><font color=green>#project-manager-portlet.all_tasks#</font></if>
+<else><a href="?" class="button">#project-manager-portlet.all_tasks#</a></else> |
+<if @is_observer_filter@ eq f><font color=green>#project-manager-portlet.my_tasks#</font></if>
+<else><a href="?page_num=@page_num@&is_observer_filter=f&filter_party_id=@user_id@" class="button">#project-manager-portlet.my_tasks#</a></else> |
+<if @is_observer_filter@ eq t><font color=green>#project-manager-portlet.pool_tasks#</font></if>
+<else><a href="?page_num=@page_num@&is_observer_filter=t" class="button">#project-manager-portlet.pool_tasks#</a></else> |
+<if @filter_group_id@ eq @group_id@><font color=green>#project-manager-portlet.group_tasks#</font></if>
+<else><a href="?page_num=@page_num@&is_observer_filter=&filter_group_id=@group_id@" class="button">#project-manager-portlet.group_tasks#</a></else>
 <br><br>
Index: openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.tcl,v
diff -u -r1.15 -r1.16
--- openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.tcl	19 Mar 2006 18:12:55 -0000	1.15
+++ openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.tcl	20 Mar 2006 12:20:56 -0000	1.16
@@ -4,6 +4,7 @@
     {page_num 0}
     {is_observer_filter "m"}
     {filter_party_id ""}
+    {filter_group_id ""}
 } 
 # daily?
 set daily_p [parameter::get -parameter "UseDayInsteadOfHour" -default "f"]
@@ -21,6 +22,11 @@
 
 set community_id [dotlrn_community::get_community_id_from_url]
 
+##############
+# should be callback here
+##############
+set group_id [group::get_id -group_name Freelancer]
+
 if {![empty_string_p $community_id]} {
 
     # We are in a community, so we can (savely?) assume that project-manager is mounted under project-manager