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