Index: openacs-4/packages/project-manager/lib/groupmember-list.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/lib/groupmember-list.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager/lib/groupmember-list.adp 4 Oct 2005 15:31:38 -0000 1.1
@@ -0,0 +1,8 @@
+
\ No newline at end of file
Index: openacs-4/packages/project-manager/lib/groupmember-list.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/lib/groupmember-list.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager/lib/groupmember-list.tcl 4 Oct 2005 15:31:38 -0000 1.1
@@ -0,0 +1,106 @@
+# /packages/project-manager/lib/groupmember-list.tcl
+#
+# author Miguel Marin (miguelmarin@viaro.net)
+# author Viaro Netorks www.viaro.net
+# creation-date 2005-10-03
+#
+# Expects:
+# groupname The name of the group to get the members list
+# orederby The orderby variable for orderby clauses
+# customer_filter The filter for the customer of the project
+
+set required_param_list [list group_name]
+set optional_param_list [list]
+set optional_unset_list [list orderby customer_filter]
+
+# Checking required parameters
+foreach required_param $required_param_list {
+ if {![info exists $required_param]} {
+ return -code error "$required_param is a required parameter."
+ }
+}
+
+# We verify if the group exist or not in the system
+set group_id [group::get_id -group_name $group_name]
+if { [empty_string_p $group_id] } {
+ ad_return_complaint 1 "The Group \"$group_name\" doesn't exist on the system"
+ ad_script_abort
+}
+
+
+foreach optional_param $optional_param_list {
+ if {![info exists $optional_param]} {
+ set $optional_param {}
+ }
+}
+
+foreach optional_unset $optional_unset_list {
+ if {[info exists $optional_unset]} {
+ if {[empty_string_p [set $optional_unset]]} {
+ unset $optional_unset
+ }
+ }
+}
+
+# We get the package_id of the project_manager instance
+set community_id [dotlrn_community::get_community_id]
+if { ![empty_string_p $community_id] } {
+ set package_id [dotlrn_community::get_package_id_from_package_key \
+ -package_key project-manager \
+ -community_id $community_id]
+} else {
+ set package_id [ad_conn package_id]
+}
+
+# Get the group members list
+set group_members_list [group::get_members -group_id $group_id]
+
+# Get the customers list associated to this package_id
+set customer_list [list]
+db_foreach get_customers { } {
+ set customer_name [contact::name -party_id $customer_id]
+ lappend customer_list [list $customer_name $customer_id]
+}
+
+template::list::create \
+ -name members \
+ -multirow members \
+ -key project_id \
+ -elements {
+ name {
+ label "[_ project-manager.Name]:"
+ }
+ email {
+ label "[_ project-manager.Email]:"
+ }
+ project_name {
+ label "[_ project-manager.Project]"
+ }
+ customer {
+ label "[_ project-manager.Customer]:"
+ }
+ deadline {
+ label "[_ project-manager.Deadline]"
+ }
+ } \
+ -filters {
+ customer_filter {
+ label "[_ project-manager.Customer]"
+ values { $customer_list }
+ where_clause { customer_id = :customer_filter }
+ }
+ } \
+ -orderby_name orderby \
+ -orderby {
+ deadline {
+ label "[_ project-manager.Deadline_1]"
+ orderby_desc {deadline desc, name desc}
+ orderby_asc {deadline asc, name asc }
+ }
+ }
+
+# Create the multirow
+db_multirow -extend { project_name customer} members get_members { } {
+ set project_name [pm::project::name -project_item_id $project_id]
+ set customer [contact::name -party_id $customer_id]
+}
\ No newline at end of file
Index: openacs-4/packages/project-manager/lib/groupmember-list.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/lib/groupmember-list.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager/lib/groupmember-list.xql 4 Oct 2005 15:31:38 -0000 1.1
@@ -0,0 +1,51 @@
+
+
+
+
+
+ select
+ party_name
+ from
+ party_names
+ where
+ party_id = :party_id
+
+
+
+
+
+ select
+ distinct customer_id
+ from
+ pm_projectsx
+ where
+ object_package_id = :package_id
+
+
+
+
+
+ select
+ distinct
+ pa.*,
+ pn.party_name as name,
+ p.email as email,
+ to_char(proj.planned_end_date, 'YYYY-MM-DD') as deadline,
+ proj.customer_id
+ from
+ pm_project_assignment pa,
+ party_names pn,
+ parties p,
+ pm_projectsx proj
+ where
+ p.party_id = pn.party_id
+ and pa.party_id = pn.party_id
+ and proj.item_id = pa.project_id
+ and pa.party_id in ([template::util::tcl_to_sql_list $group_members_list])
+ and proj.object_package_id = :package_id
+ [template::list::filter_where_clauses -and -name members]
+ [template::list::orderby_clause -orderby -name members]
+
+
+
+
\ No newline at end of file