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.7 -r1.8 --- openacs-4/packages/project-manager/lib/assignee-portlet.tcl 14 Sep 2005 14:27:33 -0000 1.7 +++ openacs-4/packages/project-manager/lib/assignee-portlet.tcl 14 Sep 2005 22:15:28 -0000 1.8 @@ -48,8 +48,18 @@ set assignee_edit_url [export_vars -base project-assign-edit {project_item_id return_url}] -db_multirow -extend {contact_url complaint_url} people project_people_query {} { - +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 [db_string get_user_name { } -default ""] + if { $assign_group_p && [empty_string_p $name] } { + set name [db_string get_group_name { } -default ""] + } # 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" @@ -60,13 +70,13 @@ } set elements [list \ - user_name [list \ - label "[_ project-manager.Who]" \ - display_template { - @people.user_name@ - - } \ - ] \ + name [list \ + label "[_ project-manager.Who]" \ + display_template { + @people.name@ + + } \ + ] \ role_name [list \ label "[_ project-manager.Role]" \ ] 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.2 -r1.3 --- openacs-4/packages/project-manager/lib/assignee-portlet.xql 10 Aug 2005 17:42:57 -0000 1.2 +++ openacs-4/packages/project-manager/lib/assignee-portlet.xql 14 Sep 2005 22:15:28 -0000 1.3 @@ -7,6 +7,7 @@ + SELECT @@ -18,10 +19,10 @@ FROM pm_project_assignment a, pm_roles r, - persons p + persons p WHERE a.role_id = r.role_id and - a.party_id = p.person_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 @@ -32,4 +33,47 @@ + + + SELECT + a.project_id, + r.one_line as role_name, + a.party_id, + r.is_lead_p + FROM + pm_project_assignment a, + pm_roles r + WHERE + a.role_id = r.role_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 + + + + + + select + group_name + from + groups + where + group_id = :party_id + + + + + + select + p.first_names || ' ' || p.last_name as name + from + persons p + where + person_id = :party_id + + \ No newline at end of file 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.3 -r1.4 --- openacs-4/packages/project-manager/lib/task-assignee-portlet.tcl 12 Sep 2005 07:10:26 -0000 1.3 +++ openacs-4/packages/project-manager/lib/task-assignee-portlet.tcl 14 Sep 2005 22:15:28 -0000 1.4 @@ -41,7 +41,7 @@ "[_ project-manager.Who]" } display_template { - @people.user_info@ + @people.assign_name@ } } role_id { @@ -60,14 +60,9 @@ } \ -orderby { default_value role_id,desc - first_names { - orderby_asc "first_names asc, last_name asc" - orderby_desc "first_names desc, last_name desc" - default_direction asc - } role_id { - orderby_asc "role_id asc, user_info asc" - orderby_desc "role_id desc, user_info asc" + orderby_asc "role_id asc" + orderby_desc "role_id desc" default_direction asc } default_value role_id,asc @@ -77,4 +72,17 @@ width 100% } -db_multirow people task_people_query { } +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" +} + +db_multirow -extend { assign_name } people $query_name { } { + set assign_name [db_string get_user_name { } -default ""] + if { $assign_group_p && [empty_string_p $assign_name] } { + set assign_name [db_string get_group_name { } -default ""] + } +} 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.1 -r1.2 --- openacs-4/packages/project-manager/lib/task-assignee-portlet.xql 28 Jul 2005 10:57:56 -0000 1.1 +++ openacs-4/packages/project-manager/lib/task-assignee-portlet.xql 14 Sep 2005 22:15:28 -0000 1.2 @@ -11,13 +11,13 @@ select r.one_line, - u.first_names || ' ' || u.last_name as user_info, r.role_id, r.is_observer_p, - r.is_lead_p + r.is_lead_p, + a.party_id from pm_task_assignment a, - persons u, + persons u, pm_roles r where a.task_id = :task_id and @@ -31,4 +31,48 @@ + + + select + r.one_line, + r.role_id, + r.is_observer_p, + r.is_lead_p, + a.party_id + from + pm_task_assignment a, + pm_roles r + where + a.task_id = :task_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] + + + + + + select + u.first_names || ' ' || u.last_name as assign_name + from + persons u + where + u.person_id = :party_id + + + + + + select + group_name as assign_name + from + groups + where + group_id = :party_id + + + \ No newline at end of file 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.7 -r1.8 --- openacs-4/packages/project-manager/lib/tasks-postgresql.xql 23 Aug 2005 16:37:50 -0000 1.7 +++ openacs-4/packages/project-manager/lib/tasks-postgresql.xql 14 Sep 2005 22:15:28 -0000 1.8 @@ -25,6 +25,7 @@ u.person_id, u.first_names, u.last_name, + $extra_column t.percent_complete, d.parent_task_id, d.dependency_type, @@ -66,6 +67,9 @@ persons u ON t.party_id = u.person_id + + $extra_join + LEFT JOIN pm_roles r ON t.role_id = r.role_id, @@ -130,6 +134,9 @@ 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.20 -r1.21 --- openacs-4/packages/project-manager/lib/tasks.tcl 14 Sep 2005 18:59:21 -0000 1.20 +++ openacs-4/packages/project-manager/lib/tasks.tcl 14 Sep 2005 22:15:28 -0000 1.21 @@ -47,11 +47,21 @@ set package_id [ad_conn package_id] } + +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 # have time to look it up in the howto. + set hide_done_tasks_p [parameter::get \ -parameter "HideDoneTaskP" -default "1"] @@ -359,8 +369,30 @@ } last_name { label "[_ project-manager.Who]" - display_template { - @tasks.first_names@ @tasks.last_name@
+ display_template { + + + + + + + + + @tasks.first_names@ @tasks.last_name@ + + + + @tasks.group_name@ + + + + + + + + +
+
} } } \ @@ -432,8 +464,7 @@ } } -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 {} { - +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 item_url [export_vars \ -base "task-one" {{task_id $task_item_id}}] Index: openacs-4/packages/project-manager/tcl/project-manager-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/tcl/project-manager-procs-postgresql.xql,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/project-manager/tcl/project-manager-procs-postgresql.xql 27 Jul 2005 19:04:37 -0000 1.4 +++ openacs-4/packages/project-manager/tcl/project-manager-procs-postgresql.xql 14 Sep 2005 22:18:32 -0000 1.5 @@ -52,6 +52,22 @@ + + + SELECT DISTINCT + g.group_name, + g.group_id + FROM + groups g, + acs_object_party_privilege_map ppm + WHERE + ppm.object_id = :package_id + and ppm.privilege = 'read' + and ppm.party_id = g.group_id + ORDER BY group_name + + + select pm_project__get_root_folder (:package_id, 'f') Index: openacs-4/packages/project-manager/tcl/project-manager-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/tcl/project-manager-procs.tcl,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/project-manager/tcl/project-manager-procs.tcl 27 Jul 2005 19:04:37 -0000 1.5 +++ openacs-4/packages/project-manager/tcl/project-manager-procs.tcl 14 Sep 2005 22:18:32 -0000 1.6 @@ -237,6 +237,7 @@ # element to start the list with. set old_w [linsert [split $old $split_by] 0 {}] set sv 1 + set res "" # For debugging purposes: # set diff_pipe [open "| diff -f $old_f $new_f" "r"] @@ -290,6 +291,7 @@ } } + for {set i $sv} {$i < [llength $old_w]} {incr i} { append res "${split_by}[lindex $old_w $i]" } @@ -740,11 +742,17 @@ # } set package_id [ad_conn package_id] -# set user_group_id [application_group::group_id_from_package_id \ - -package_id $subsite_id] - - set assignees [db_list_of_lists get_assignees { }] + # set user_group_id [application_group::group_id_from_package_id -package_id $subsite_id] + set assignees [db_list_of_lists get_assignees { }] + + if { [parameter::get -parameter "AssignGroupP" -default 0]} { + # We need to have the groups also in the list to assign + set group_assignees [db_list_of_lists get_assignees_from_groups { }] + foreach assignee $group_assignees { + lappend assignees $assignee + } + } return $assignees } 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.1 -r1.2 --- openacs-4/packages/project-manager/templates/task-ae.tcl 11 Aug 2005 21:09:30 -0000 1.1 +++ openacs-4/packages/project-manager/templates/task-ae.tcl 14 Sep 2005 22:19:07 -0000 1.2 @@ -368,8 +368,19 @@ foreach one_assignee $assignee_role_list { set person_id [lindex $one_assignee 0] - set name [person::name -person_id $person_id] - lappend assignee_options [list $name $person_id] + if { [parameter::get -parameter "AssignGroupP" -default 0] } { + set name [db_string get_group_name { } -default ""] + if { [empty_string_p $name] } { + set name [person::name -person_id $person_id] + } + lappend assignee_options [list $name $person_id] + } else { + set name [db_string get_group_name { } -default ""] + if { [empty_string_p $name] } { + set name [person::name -person_id $person_id] + lappend assignee_options [list $name $person_id] + } + } } foreach role_list $roles_list { Index: openacs-4/packages/project-manager/templates/task-ae.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/templates/task-ae.xql,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/project-manager/templates/task-ae.xql 11 Aug 2005 21:09:30 -0000 1.1 +++ openacs-4/packages/project-manager/templates/task-ae.xql 14 Sep 2005 22:19:07 -0000 1.2 @@ -54,4 +54,15 @@ + + + select + group_name + from + groups + where + group_id = :person_id + + + Index: openacs-4/packages/project-manager/www/project-assign-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/www/project-assign-edit.tcl,v diff -u -N -r1.11 -r1.12 --- openacs-4/packages/project-manager/www/project-assign-edit.tcl 30 Jul 2005 19:05:41 -0000 1.11 +++ openacs-4/packages/project-manager/www/project-assign-edit.tcl 14 Sep 2005 22:19:49 -0000 1.12 @@ -40,24 +40,7 @@ set roles_list_of_lists [pm::role::select_list_filter] -db_foreach assignee_query { - SELECT - a.party_id, - r.role_id - 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 - a.project_id = :project_item_id - ORDER BY - r.role_id, - p.first_names, - p.last_name - -} { +db_foreach assignee_query { } { set assigned($party_id-$role_id) 1 } @@ -67,6 +50,9 @@ if { ![empty_string_p $search_user_id]} { # Get the user name set fullname [db_string get_user_fullname { } -default ""] + if { [empty_string_p $fullname] } { + set fullname [db_string get_group_name { } -default ""] + } if { ![empty_string_p $fullname] && [string equal [lsearch $assignee_list_of_lists [list $fullname $search_user_id]] "-1"] } { lappend assignee_list_of_lists [list $fullname $search_user_id] } @@ -86,9 +72,7 @@ foreach assignee_list $assignee_list_of_lists { set name [lindex $assignee_list 0] set person_id [lindex $assignee_list 1] - set email Email - #[party::email -party_id $person_id] - + set email [party::email -party_id $person_id] if {[exists_and_not_null assigned($person_id-$role)]} { set checked "checked" } else { @@ -97,10 +81,14 @@ append html " $name ($email) -
- " - + type=\"checkbox\" $checked />$name " + if { ![empty_string_p $email] } { + append html " + ($email) + " + } + append html " +
" } # Add the list of Employees from the customer as well if they are Index: openacs-4/packages/project-manager/www/project-assign-edit.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/www/project-assign-edit.xql,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/project-manager/www/project-assign-edit.xql 30 Jul 2005 19:05:41 -0000 1.1 +++ openacs-4/packages/project-manager/www/project-assign-edit.xql 14 Sep 2005 22:19:49 -0000 1.2 @@ -2,6 +2,22 @@ + + + SELECT + a.party_id, + r.role_id + FROM + pm_project_assignment a, + pm_roles r + WHERE + a.role_id = r.role_id and + a.project_id = :project_item_id + ORDER BY + r.role_id + + + select @@ -13,4 +29,15 @@ + + + select + group_name + from + groups + where + group_id = :search_user_id + + + \ No newline at end of file