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