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 -N -r1.4 -r1.5 --- openacs-4/packages/project-manager-portlet/lib/projects-postgresql.xql 25 Aug 2005 19:46:03 -0000 1.4 +++ openacs-4/packages/project-manager-portlet/lib/projects-postgresql.xql 15 Sep 2005 22:43:53 -0000 1.5 @@ -24,7 +24,7 @@ and i.parent_id = f.folder_id $extra_role_where_clause $extra_query - and f.package_id in ($package_ids)) proj + ) proj where exists (select 1 from acs_object_party_privilege_map ppm where ppm.object_id = proj.project_id and ppm.privilege = 'read' 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 -N -r1.5 -r1.6 --- openacs-4/packages/project-manager-portlet/lib/projects.tcl 25 Aug 2005 19:46:03 -0000 1.5 +++ openacs-4/packages/project-manager-portlet/lib/projects.tcl 15 Sep 2005 22:43:53 -0000 1.6 @@ -35,16 +35,22 @@ } set community_id [dotlrn_community::get_community_id] + +#ad_return_complaint 1 $package_ids + 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 + 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" + and 1 = ( select 1 from dual where pa.party_id = :user_id or :user_id in ( select object_id_two from acs_rels where object_id_one = pa.party_id + and rel_type = 'membership_rel')) + " } else { set user_space_p 0 set extra_role_tables "" - set extra_role_where_clause "" + set extra_role_where_clause "and f.package_id in ($package_ids)" } # --------------------------------------------------------------- # 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 -N -r1.4 -r1.5 --- openacs-4/packages/project-manager-portlet/lib/tasks-postgresql.xql 25 Aug 2005 19:46:03 -0000 1.4 +++ openacs-4/packages/project-manager-portlet/lib/tasks-postgresql.xql 15 Sep 2005 22:43:53 -0000 1.5 @@ -22,9 +22,6 @@ t.latest_finish - current_date as days_to_latest_finish, to_char(t.end_date,'YYYY-MM-DD HH24:MI:SS') as end_date, t.end_date - current_date as days_to_end_date, - u.person_id, - u.first_names, - u.last_name, t.percent_complete, t.estimated_hours_work, t.estimated_hours_work_min, @@ -34,6 +31,7 @@ s.description as status_description, r.is_lead_p, t.priority, + t.party_id, p.title as project_name FROM (select tr.item_id, @@ -55,10 +53,6 @@ tr.priority 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, 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 -N -r1.4 -r1.5 --- openacs-4/packages/project-manager-portlet/lib/tasks.tcl 25 Aug 2005 19:46:03 -0000 1.4 +++ openacs-4/packages/project-manager-portlet/lib/tasks.tcl 15 Sep 2005 22:43:53 -0000 1.5 @@ -170,7 +170,8 @@ # 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" + set party_where_clause "and 1 = ( select 1 from dual where t.party_id = :user_id or :user_id in ( + select object_id_two from acs_rels where object_id_one = t.party_id and rel_type = 'membership_rel'))" } else { set party_where_clause "" } @@ -255,7 +256,7 @@ } party_id { label "[_ project-manager.Who]" - display_template { @tasks.first_names@ @tasks.last_name@
+ display_template { @tasks.name@
} } role { @@ -321,8 +322,8 @@ } last_name { label "[_ project-manager.Who]" - display_template { - @tasks.first_names@ @tasks.last_name@
+ display_template { + @tasks.name@
} } } \ @@ -354,9 +355,32 @@ set count 0 set more_p 0 +# We ge the package_id of the pm instance to get the value of the parameter -db_multirow -extend {item_url earliest_start_pretty earliest_finish_pretty end_date_pretty latest_start_pretty latest_finish_pretty slack_time edit_url hours_remaining days_remaining actual_days_worked my_user_id user_url base_url task_close_url project_url} tasks tasks {} { +set pm_package_id [dotlrn_community::get_package_id_from_package_key \ + -package_key "project-manager" \ + -community_id [dotlrn_community::get_community_id]] +set assign_group_p [parameter::get -parameter "AssignGroupP" -default 0 -package_id $pm_package_id] + +db_multirow -extend {item_url earliest_start_pretty earliest_finish_pretty end_date_pretty latest_start_pretty latest_finish_pretty slack_time edit_url hours_remaining days_remaining actual_days_worked my_user_id user_url base_url task_close_url project_url name} tasks tasks {} { + + if { $assign_group_p } { + # We are going to show all asignees including groups + if { [catch {set name [person::name -person_id $party_id] } err] } { + # person::name give us an error so its probably a group so we get + # the title + set name [group::title -group_id $party_id] + } + } else { + if { [catch {set name [person::name -person_id $party_id] } err] } { + # person::name give us an error so its probably a group, here we don't want + # to show any group so we just continue the multirow + continue + } + } + + incr count if { [string equal $count 26] } { set more_p 1 @@ -415,7 +439,7 @@ } set my_user_id $user_id set user_url [export_vars \ - -base "${contacts_url}contact" {{party_id $person_id}}] + -base "${contacts_url}contact" {{party_id $party_id}}] acs_object::get -object_id $task_item_id -array task_array set base_url [lindex [site_node::get_url_from_object_id -object_id $task_array(package_id)] 0]