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.3 -r1.4 --- openacs-4/packages/project-manager-portlet/lib/projects-postgresql.xql 24 Aug 2005 15:04:05 -0000 1.3 +++ openacs-4/packages/project-manager-portlet/lib/projects-postgresql.xql 25 Aug 2005 19:46:03 -0000 1.4 @@ -4,7 +4,7 @@ - SELECT + select * from (SELECT distinct p.item_id as project_item_id, p.project_id, p.status_id, @@ -17,13 +17,16 @@ p.customer_id as customer_id, f.package_id FROM pm_projectsx p, cr_items i, + $extra_role_tables cr_folders f WHERE p.project_id = i.live_revision and i.parent_id = f.folder_id - and f.package_id in ($package_ids) - and exists (select 1 from acs_object_party_privilege_map ppm - where ppm.object_id = p.project_id + $extra_role_where_clause + $extra_query + and f.package_id in ($package_ids)) proj + where exists (select 1 from acs_object_party_privilege_map ppm + where ppm.object_id = proj.project_id and ppm.privilege = 'read' and ppm.party_id = :user_id) [template::list::filter_where_clauses -and -name "projects"] Index: openacs-4/packages/project-manager-portlet/lib/projects.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/lib/projects.adp,v diff -u -r1.3 -r1.4 --- openacs-4/packages/project-manager-portlet/lib/projects.adp 24 Aug 2005 15:04:05 -0000 1.3 +++ openacs-4/packages/project-manager-portlet/lib/projects.adp 25 Aug 2005 19:46:03 -0000 1.4 @@ -1,4 +1,12 @@ + + + #project-manager-portlet.my_projects# | + #project-manager-portlet.pool_projects# + + + (#project-manager-portlet.clear#) +
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.4 -r1.5 --- openacs-4/packages/project-manager-portlet/lib/projects.tcl 24 Aug 2005 15:04:05 -0000 1.4 +++ openacs-4/packages/project-manager-portlet/lib/projects.tcl 25 Aug 2005 19:46:03 -0000 1.5 @@ -6,7 +6,7 @@ # @cvs-id $Id$ set required_param_list [list package_id] -set optional_param_list [list status_id searchterm bulk_p action_p filter_p base_url end_date_f] +set optional_param_list [list status_id searchterm bulk_p action_p filter_p base_url end_date_f is_observer_p] set optional_unset_list [list assignee_id date_range] foreach required_param $required_param_list { @@ -37,13 +37,18 @@ set community_id [dotlrn_community::get_community_id] if { [empty_string_p $community_id] } { set user_space_p 1 + set extra_role_tables "pm_project_assignment pa,pm_roles pr," + set extra_role_where_clause " and pa.project_id = p.item_id + and pa.role_id = pr.role_id + and pa.party_id = :user_id" } else { set user_space_p 0 + set extra_role_tables "" + set extra_role_where_clause "" } # --------------------------------------------------------------- # -set package_id $package_id set c_row 0 set exporting_vars { status_id category_id assignee_id format } @@ -55,6 +60,14 @@ # the unique identifier for this package set user_id [ad_maybe_redirect_for_registration] +# Filter for observers + +if { ![empty_string_p $is_observer_p] } { + set extra_query "and pr.is_observer_p = '$is_observer_p'" +} else { + set extra_query "" +} + # Projects, using list-builder --------------------------------- # Set status @@ -256,12 +269,13 @@ set more_p 1 break } - set item_url [export_vars -base "${base_url}one" {project_item_id}] set _base_url [site_node::get_url_from_object_id -object_id $package_id] if {![empty_string_p $_base_url]} { set base_url $_base_url } + + 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] set community_id [dotlrn_community::get_community_id_from_url \ Index: openacs-4/packages/project-manager-portlet/lib/tasks-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/lib/tasks-postgresql.xql,v diff -u -r1.3 -r1.4 --- openacs-4/packages/project-manager-portlet/lib/tasks-postgresql.xql 23 Aug 2005 16:41:59 -0000 1.3 +++ openacs-4/packages/project-manager-portlet/lib/tasks-postgresql.xql 25 Aug 2005 19:46:03 -0000 1.4 @@ -26,8 +26,6 @@ u.first_names, u.last_name, t.percent_complete, - d.parent_task_id, - d.dependency_type, t.estimated_hours_work, t.estimated_hours_work_min, t.estimated_hours_work_max, @@ -36,7 +34,6 @@ s.description as status_description, r.is_lead_p, t.priority, - p.customer_id, p.title as project_name FROM (select tr.item_id, @@ -56,34 +53,24 @@ tr.parent_id, tr.revision_id, tr.priority - from pm_tasks_revisionsx tr - LEFT JOIN - pm_task_assignment ta ON tr.item_id = ta.task_id) t + from pm_tasks_revisionsx tr, pm_task_assignment ta, pm_roles pr + where ta.task_id = tr.item_id and ta.role_id = pr.role_id $extra_query) t LEFT JOIN persons u ON t.party_id = u.person_id LEFT JOIN pm_roles r ON t.role_id = r.role_id, - cr_items i - LEFT JOIN - pm_task_dependency d - ON - i.item_id = d.task_id, + cr_items i, pm_tasks_active ti, pm_task_status s, - pm_projectsx p, - pm_task_assignment pa, - pm_roles pr + pm_projectsx p WHERE t.parent_id = p.item_id and t.revision_id = i.live_revision and t.item_id = ti.task_id and ti.status = s.status_id - and pa.task_id = t.item_id - and pa.role_id = pr.role_id - $extra_query $party_where_clause and exists (select 1 from acs_object_party_privilege_map ppm where ppm.object_id = ti.task_id Index: openacs-4/packages/project-manager-portlet/lib/tasks.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/lib/tasks.adp,v diff -u -r1.2 -r1.3 --- openacs-4/packages/project-manager-portlet/lib/tasks.adp 23 Aug 2005 16:41:59 -0000 1.2 +++ openacs-4/packages/project-manager-portlet/lib/tasks.adp 25 Aug 2005 19:46:03 -0000 1.3 @@ -44,8 +44,8 @@
-#project-manager-portlet.my_tasks# | -#project-manager-portlet.pool_tasks# +#project-manager-portlet.my_tasks# | +#project-manager-portlet.pool_tasks# (#project-manager-portlet.clear#) Index: openacs-4/packages/project-manager-portlet/lib/tasks.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/lib/tasks.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/project-manager-portlet/lib/tasks.tcl 23 Aug 2005 16:41:59 -0000 1.3 +++ openacs-4/packages/project-manager-portlet/lib/tasks.tcl 25 Aug 2005 19:46:03 -0000 1.4 @@ -171,11 +171,6 @@ # We need to filter by the user if a party_id is given if {[exists_and_not_null party_id]} { set party_where_clause "and t.party_id = :party_id" - - # Do we want to show observer tasks as well? - if {[parameter::get -parameter "ShowObserverTasksP"] == 0} { - append party_where_clause "\n and r.is_observer_p = 'f' " - } } else { set party_where_clause "" } 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.6 -r1.7 --- openacs-4/packages/project-manager-portlet/www/project-manager-portlet.adp 24 Aug 2005 15:04:58 -0000 1.6 +++ openacs-4/packages/project-manager-portlet/www/project-manager-portlet.adp 25 Aug 2005 19:46:03 -0000 1.7 @@ -23,4 +23,4 @@ - + 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.4 -r1.5 --- openacs-4/packages/project-manager-portlet/www/project-manager-portlet.tcl 24 Aug 2005 15:04:58 -0000 1.4 +++ openacs-4/packages/project-manager-portlet/www/project-manager-portlet.tcl 25 Aug 2005 19:46:03 -0000 1.5 @@ -10,6 +10,8 @@ category_id:multiple,optional {format "normal"} {assignee_id ""} + {is_observer_p ""} + {page_num 0} } -properties {