Index: openacs-4/packages/project-manager/lib/assignee-portlet.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/lib/assignee-portlet.tcl,v diff -u -N -r1.9 -r1.10 --- openacs-4/packages/project-manager/lib/assignee-portlet.tcl 15 Sep 2005 07:43:14 -0000 1.9 +++ openacs-4/packages/project-manager/lib/assignee-portlet.tcl 15 Sep 2005 22:40:21 -0000 1.10 @@ -49,17 +49,23 @@ set assignee_edit_url [export_vars -base project-assign-edit {project_item_id return_url}] set assign_group_p [parameter::get -parameter "AssignGroupP" -default 0] -if { $assign_group_p } { - set query_name "project_people_groups_query" -} else { - set query_name "project_people_query" -} -db_multirow -extend {contact_url complaint_url name} people $query_name {} { - set name [person::name -person_id $party_id] - if { $assign_group_p && [empty_string_p $name] } { - set name [group::title -group_id $party_id] +db_multirow -extend {contact_url complaint_url name} people project_people_groups_query {} { + 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 assignee_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 + } } + # If contacts is installed provide a link to the contacts party_id, otherwise don't if {![empty_string_p $contacts_url]} { set contact_url "${contacts_url}$party_id" Index: openacs-4/packages/project-manager/lib/assignee-portlet.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/lib/assignee-portlet.xql,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/project-manager/lib/assignee-portlet.xql 15 Sep 2005 07:43:14 -0000 1.4 +++ openacs-4/packages/project-manager/lib/assignee-portlet.xql 15 Sep 2005 22:40:21 -0000 1.5 @@ -8,31 +8,6 @@ - - - SELECT - a.project_id, - r.one_line as role_name, - p.first_names || ' ' || p.last_name as user_name, - a.party_id, - r.is_lead_p - FROM - pm_project_assignment a, - pm_roles r, - persons p - WHERE - a.role_id = r.role_id and - a.party_id = p.person_id and - project_id = :project_item_id - and exists (select 1 from acs_object_party_privilege_map ppm - where ppm.object_id = :project_item_id - and ppm.privilege = 'read' - and ppm.party_id = :user_id) - ORDER BY - r.role_id, p.first_names, p.last_name - - - SELECT Index: openacs-4/packages/project-manager/lib/task-assignee-portlet.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/lib/task-assignee-portlet.tcl,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/project-manager/lib/task-assignee-portlet.tcl 15 Sep 2005 07:43:14 -0000 1.5 +++ openacs-4/packages/project-manager/lib/task-assignee-portlet.tcl 15 Sep 2005 22:40:21 -0000 1.6 @@ -74,15 +74,21 @@ set assign_group_p [parameter::get -parameter "AssignGroupP" -default 0] -if { $assign_group_p } { - set query_name "task_people_group_query" -} else { - set query_name "task_people_query" -} +set query_name "task_people_group_query" db_multirow -extend { assign_name } people $query_name { } { - set assign_name [person::name -person_id $party_id] - if { $assign_group_p && [empty_string_p $assign_name] } { - set assign_name [group::title -group_id $party_id] + if { $assign_group_p } { + # We are going to show all asignees including groups + if { [catch {set assign_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 assign_name [group::title -group_id $party_id] + } + } else { + if { [catch {set assign_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 + } } } Index: openacs-4/packages/project-manager/lib/task-assignee-portlet.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/lib/task-assignee-portlet.xql,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/project-manager/lib/task-assignee-portlet.xql 15 Sep 2005 07:43:14 -0000 1.3 +++ openacs-4/packages/project-manager/lib/task-assignee-portlet.xql 15 Sep 2005 22:40:21 -0000 1.4 @@ -7,29 +7,6 @@ - - - select - r.one_line, - r.role_id, - r.is_observer_p, - r.is_lead_p, - a.party_id - from - pm_task_assignment a, - persons u, - pm_roles r - where - a.task_id = :task_id and - u.person_id = a.party_id and - a.role_id = r.role_id - and exists (select 1 from acs_object_party_privilege_map ppm - where ppm.object_id = a.task_id - and ppm.privilege = 'read' - and ppm.party_id = :user_id) - [template::list::orderby_clause -name people -orderby] - - Index: openacs-4/packages/project-manager/lib/tasks-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/lib/tasks-postgresql.xql,v diff -u -N -r1.8 -r1.9 --- openacs-4/packages/project-manager/lib/tasks-postgresql.xql 14 Sep 2005 22:15:28 -0000 1.8 +++ openacs-4/packages/project-manager/lib/tasks-postgresql.xql 15 Sep 2005 22:40:21 -0000 1.9 @@ -22,10 +22,7 @@ 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, - $extra_column + t.party_id, t.percent_complete, d.parent_task_id, d.dependency_type, @@ -63,13 +60,6 @@ from pm_tasks_revisionsx tr LEFT JOIN pm_task_assignment ta ON tr.item_id = ta.task_id) t - LEFT JOIN - persons u - ON - t.party_id = u.person_id - - $extra_join - LEFT JOIN pm_roles r ON t.role_id = r.role_id, @@ -130,13 +120,6 @@ from pm_tasks_revisionsx tr LEFT JOIN pm_task_assignment ta ON tr.item_id = ta.task_id) t - LEFT JOIN - persons u - ON - t.party_id = u.person_id - - $extra_join - LEFT JOIN pm_roles r ON t.role_id = r.role_id, Index: openacs-4/packages/project-manager/lib/tasks.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/lib/tasks.tcl,v diff -u -N -r1.21 -r1.22 --- openacs-4/packages/project-manager/lib/tasks.tcl 14 Sep 2005 22:15:28 -0000 1.21 +++ openacs-4/packages/project-manager/lib/tasks.tcl 15 Sep 2005 22:40:21 -0000 1.22 @@ -50,12 +50,7 @@ set extra_column "" set extra_join "" -if { [parameter::get -parameter "AssignGroupP" -default 0] } { - set extra_column "g.group_name," - set extra_join " LEFT JOIN groups g ON t.party_id = g.group_id" -} - # --------------------------------------------------------------- # Hide finished tasks. This should be added as a filter, but I did not @@ -300,7 +295,7 @@ } party_id { label "[_ project-manager.Who]" - display_template { @tasks.first_names@ @tasks.last_name@
+ display_template { @tasks.assignee_name@
} } role { @@ -371,24 +366,19 @@ label "[_ project-manager.Who]" display_template { - + - - @tasks.first_names@ @tasks.last_name@ + + @tasks.assignee_name@ - - - @tasks.group_name@ - - - +
@@ -404,37 +394,31 @@ default_value $default_orderby title { label "[_ project-manager.Subject_1]" - orderby_desc "t.title desc, ts.task_item_id, u.first_names, u.last_name" - orderby_asc "t.title asc, ts.task_item_id, u.first_names, u.last_name" + orderby_desc "t.title desc, ts.task_item_id" + orderby_asc "t.title asc, ts.task_item_id" default_direction asc } - full_name { - label "[_ project-manager.Who]" - orderby_desc "u.first_names desc,u.last_name desc, ts.task_item_id" - orderby_asc "u.first_names, u.last_name, ts.task_item_id" - default_direction asc - } description { label "[_ project-manager.Description]" - orderby_desc "t.description desc, ts.task_item_id, u.first_names, u.last_name" - orderby_asc "t.description, ts.task_item_id, u.first_names, u.last_name" + orderby_desc "t.description desc, ts.task_item_id" + orderby_asc "t.description, ts.task_item_id" default_direction asc } slack_time { label "[_ project-manager.Slack_1]" - orderby_desc "(latest_start - earliest_start) desc, ts.task_item_id, u.first_names, u.last_name" - orderby_asc "(latest_start - earliest_start), ts.task_item_id, u.first_names, u.last_name" + orderby_desc "(latest_start - earliest_start) desc, ts.task_item_id" + orderby_asc "(latest_start - earliest_start), ts.task_item_id" default_direction asc } status { label "[_ project-manager.Status_1]" - orderby_desc "status desc, t.latest_finish desc, ts.task_item_id, u.first_names, u.last_name" - orderby_asc "status asc, t.latest_finish desc, ts.task_item_id, u.first_names, u.last_name" + orderby_desc "status desc, t.latest_finish desc, ts.task_item_id" + orderby_asc "status asc, t.latest_finish desc, ts.task_item_id" default_direction asc } end_date { - orderby_asc "end_date, task_item_id asc, u.first_names, u.last_name" - orderby_desc "end_date desc, task_item_id desc, u.first_names, u.last_name" + orderby_asc "end_date, task_item_id asc" + orderby_desc "end_date desc, task_item_id desc" default_direction asc } } \ @@ -464,7 +448,26 @@ } } -db_multirow -extend {item_url earliest_start_pretty earliest_finish_pretty end_date_pretty latest_start_pretty latest_finish_pretty slack_time edit_url log_url hours_remaining days_remaining actual_days_worked my_user_id user_url base_url task_close_url project_url} tasks tasks " " { + +set assign_group_p [parameter::get -parameter "AssignGroupP" -default 0] + +db_multirow -extend {item_url earliest_start_pretty earliest_finish_pretty end_date_pretty latest_start_pretty latest_finish_pretty slack_time edit_url log_url hours_remaining days_remaining actual_days_worked my_user_id user_url base_url task_close_url project_url assignee_name} tasks tasks " " { + + if { $assign_group_p } { + # We are going to show all asignees including groups + if { [catch {set assignee_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 assignee_name [group::title -group_id $party_id] + } + } else { + if { [catch {set assignee_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 + } + } + set item_url [export_vars \ -base "task-one" {{task_id $task_item_id}}] @@ -520,7 +523,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] Index: openacs-4/packages/project-manager/tcl/project-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/tcl/project-procs.tcl,v diff -u -N -r1.20 -r1.21 --- openacs-4/packages/project-manager/tcl/project-procs.tcl 15 Sep 2005 07:42:46 -0000 1.20 +++ openacs-4/packages/project-manager/tcl/project-procs.tcl 15 Sep 2005 22:41:49 -0000 1.21 @@ -2065,7 +2065,7 @@ @error } { - set package_id [db_string package_id "select object_package_id from pm_projectsx where item_id = :project_item_id"] + set package_id [db_string package_id "select distinct object_package_id from pm_projectsx where item_id = :project_item_id"] return "[apm_package_url_from_id $package_id]one?project_item_id=$project_item_id" } Index: openacs-4/packages/project-manager/templates/task-ae.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/templates/task-ae.tcl,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/project-manager/templates/task-ae.tcl 15 Sep 2005 07:43:14 -0000 1.3 +++ openacs-4/packages/project-manager/templates/task-ae.tcl 15 Sep 2005 22:40:59 -0000 1.4 @@ -366,21 +366,27 @@ set task_assignee_list [list] } + +set assign_group_p [parameter::get -parameter "AssignGroupP" -default 0] + foreach one_assignee $assignee_role_list { set person_id [lindex $one_assignee 0] - if { [parameter::get -parameter "AssignGroupP" -default 0] } { - set name [group::title -group_id $person_id] - if { [empty_string_p $name] } { - set name [person::name -person_id $person_id] - } - lappend assignee_options [list $name $person_id] + + if { $assign_group_p } { + # We are going to show all asignees including groups + if { [catch {set assignee_name [person::name -person_id $person_id] } err] } { + # person::name give us an error so its probably a group so we get + # the title + set assignee_name [group::title -group_id $person_id] + } } else { - set name [group::title -group_id $person_id] - if { [empty_string_p $name] } { - set name [person::name -person_id $person_id] - lappend assignee_options [list $name $person_id] - } + if { [catch {set assignee_name [person::name -person_id $person_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 + } } + lappend assignee_options [list $assignee_name $person_id] } foreach role_list $roles_list { Index: openacs-4/packages/project-manager/www/project-assign-edit-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/www/project-assign-edit-2.tcl,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/project-manager/www/project-assign-edit-2.tcl 26 May 2005 09:34:29 -0000 1.4 +++ openacs-4/packages/project-manager/www/project-assign-edit-2.tcl 15 Sep 2005 22:42:41 -0000 1.5 @@ -36,6 +36,11 @@ set send_email_p t } + # We check if the party has read privilege or not over the pm instance, if not we give them + if { ![permission::permission_p -party_id $party_id -object_id [ad_conn package_id] -privilege read] } { + permission::grant -party_id $party_id -object_id [ad_conn package_id] -privilege read + } + pm::project::assign \ -project_item_id $project_item_id \ -party_id $party_id \ Index: openacs-4/packages/project-manager/www/rate-project.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/www/rate-project.tcl,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/project-manager/www/rate-project.tcl 4 Sep 2005 12:25:26 -0000 1.5 +++ openacs-4/packages/project-manager/www/rate-project.tcl 15 Sep 2005 22:42:41 -0000 1.6 @@ -80,7 +80,7 @@ set object_id [lindex $element_info 0] set dimension_key [lindex $element_info 1] set rating_id [ratings::rate -dimension_key $dimension_key \ - -object_id $project_id \ + -object_id $object_id \ -user_id $user_id \ -rating $rating \ -nomem_p "t"] Index: openacs-4/packages/project-manager/www/search-user.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/www/search-user.tcl,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/project-manager/www/search-user.tcl 30 Jul 2005 19:05:41 -0000 1.1 +++ openacs-4/packages/project-manager/www/search-user.tcl 15 Sep 2005 22:42:41 -0000 1.2 @@ -25,7 +25,7 @@ {value $return_url} } {search_user_id:party_search(party_search),optional - {label "Search for User:"} + {label "[_ project-manager.search_user]:"} } } -after_submit { ad_returnredirect "project-assign-edit?project_item_id=$project_item_id&search_user_id=$search_user_id&return_url=$return_url"