Index: openacs-4/packages/dotlrn/www/members.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/members.tcl,v diff -u -r1.27 -r1.28 --- openacs-4/packages/dotlrn/www/members.tcl 7 Oct 2007 22:36:56 -0000 1.27 +++ openacs-4/packages/dotlrn/www/members.tcl 9 Nov 2008 23:29:23 -0000 1.28 @@ -32,10 +32,13 @@ set community_id [dotlrn_community::get_community_id] set spam_p [dotlrn::user_can_spam_community_p -user_id [ad_get_user_id] -community_id $community_id] set approval_policy_p [string eq [group::join_policy -group_id $community_id] "needs approval"] +set subcomm_p [dotlrn_community::subcommunity_p -community_id $community_id] set referer [ns_conn url] set return_url "[ns_conn url]?[ns_conn query]" +set csv_p [exists_and_not_null csv] + set site_wide_admin_p [permission::permission_p -object_id [acs_magic_object security_context_root] -privilege admin] if {!$site_wide_admin_p} { @@ -44,19 +47,6 @@ set admin_p 1 } -# make it so that only course admins -# and site wide admins can read this page -# if { !$admin_p } { -# ad_return_forbidden "Permission Denied" "
-# You don't have permission to view this page. -#
" -# ad_script_abort -#} - -if {$admin_p} { - set add_member_url [export_vars -base user-add { {can_browse_p 1} {read_private_data_p t} {referer $return_url} }] -} - if {![exists_and_not_null referer]} { if {[string equal $admin_p t] == 1} { set referer "one-community-admin" @@ -65,122 +55,108 @@ } } -set bio_attribute_id [db_string bio_attribute_id { - select attribute_id - from acs_attributes - where object_type = 'person' - and attribute_name = 'bio' -}] - # Actions for Removing Members according to their role set rel_types [dotlrn_community::get_roles -community_id $community_id] set bulk_actions "" set bulk_actions_export_vars "" set actions "" -if {$admin_p} { +if {$admin_p && !$csv_p} { set bulk_actions [list "[_ dotlrn.Drop_Membership]" "deregister" "[_ dotlrn.Drop_Membership]"] set bulk_actions_export_vars [list "user_id" "referer" "reset"] - set actions [list "CSV" "members?csv=yes" "[_ dotlrn.Comma_Separated_Values]"] + + if { !$subcomm_p } { + lappend actions [_ dotlrn.Create_and_add_a_member] [export_vars -base user-add { {can_browse_p 1} {read_private_data_p t} {referer $return_url} }] [_ dotlrn.Create_and_add_a_member] + } + + if { $spam_p } { + lappend actions [_ dotlrn.Email_Members] [export_vars -base "spam-recipients" {community_id}] [_ dotlrn.Email_Members] + } + + lappend actions "CSV" "members?csv=yes" [_ dotlrn.Export_members_list_to_CSV] + foreach role $rel_types { - # lappend actions "[_ dotlrn.Remove_all] [lang::util::localize [lindex $role 3]]" "members?reset=1&reltype=[lindex $role 0]" "[lang::util::localize [lindex $role 2]]" - lappend actions "[_ dotlrn.Remove_all] [lang::util::localize [lindex $role 3]]" "member-confirm?reset=1&reltype=[lindex $role 0]" "[lang::util::localize [lindex $role 2]]" + set action_label "[_ dotlrn.Remove_all] [lang::util::localize [lindex $role 3]]" + lappend actions $action_label "member-confirm?reset=1&reltype=[lindex $role 0]" $action_label } } # Set the elements list set elm_list { - portrait { - label "" - html "align right" - display_template { - - - #acs-subsite.Profile# - - - -
Update bio -
- - } - } last_name { - label "[_ acs-subsite.Last_name]" - html "align left" - display_template { - @members.last_name;noquote@ - } - } first_names { - label "[_ acs-subsite.First_names]" - html "align left" - display_template { - @members.first_names@ - } - } email { - label "[_ dotlrn.Email_1]" - html "align left" - display_template { - @members.email@ - } - } role { - label "[_ dotlrn.Role]" - html "align left" - } + portrait { + label "" + html "align right" + display_template { + + + #acs-subsite.Profile# + + + } + hide_p $csv_p + } last_name { + label "[_ acs-subsite.Last_name]" + html "align left" + display_template { + @members.last_name;noquote@ + } + } first_names { + label "[_ acs-subsite.First_names]" + html "align left" + display_template { + @members.first_names@ + } + } email { + label "[_ dotlrn.Email_1]" + html "align left" + display_template {@members.email_pretty;noquote@} + } role { + label "[_ dotlrn.Role]" + html "align left" + } } -if {$admin_p} { +if {$admin_p && !$csv_p} { lappend elm_list {action} { - label "[_ dotlrn.Actions]" - html "align left" - display_template { - - #dotlrn.Drop_Membership# | - #dotlrn.User_Admin_Page# - - } - } + label "[_ dotlrn.Actions]" + html "align left" + display_template { + + #dotlrn.Drop_Membership# | + #dotlrn.User_Admin_Page# + + } + } } # Build the list-builder list template::list::create -name members -multirow members -key user_id -actions $actions -bulk_actions $bulk_actions -bulk_action_export_vars $bulk_actions_export_vars -elements $elm_list -orderby { - last_name {orderby last_name} - first_names {orderby first_names} - email {orderby email} - role {orderby role} + last_name {orderby last_name} + first_names {orderby first_names} + email {orderby email} + role {orderby role} } -selected_format csv -formats { - csv { output csv } + csv { output csv } } set orderby [template::list::orderby_clause -name "members" -orderby] set member_page [acs_community_member_page] -db_multirow -extend { update_bio_p member_url member_referer } members select_current_members {} { +db_multirow -extend { member_url member_referer email_pretty } members select_current_members {} { + + set email_pretty [email_image::get_user_email -user_id $user_id -return_url $return_url] set member_url "$member_page?user_id=$user_id" set member_referer $referer - set update_bio_p $admin_p set role [dotlrn_community::get_role_pretty_name -community_id $community_id -rel_type $rel_type] } -if { [exists_and_not_null csv] } { +if { $csv_p } { template::list::write_output -name members } -# # Bulk action User Admin Page -# # Depending on the community_type, we have allowable rel_types -# set rel_types [dotlrn_community::get_roles -community_id $community_id] -# set selection "" -# set size [multirow size members] -# if { $size > 0 } { -# multirow append members "" "" "" "" "" $selection -# } - set user_ids "" db_multirow -extend { member_url pending_user_referer } pending_users select_pending_users {} { set role [dotlrn_community::get_role_pretty_name -community_id $community_id -rel_type $rel_type] @@ -192,49 +168,47 @@ if {$admin_p} { if { [template::multirow size pending_users] > 0 } { - set pend_actions [list "[_ dotlrn.Approve_all]" "approve?${user_ids}referer=$referer" "[_ dotlrn.Approve_all]" \ - "[_ dotlrn.Reject_all]" "reject?${user_ids}referer=$referer" "[_ dotlrn.Reject_all]"] + set pend_actions [list "[_ dotlrn.Approve_all]" "approve?${user_ids}referer=$referer" "[_ dotlrn.Approve_all]" \ + "[_ dotlrn.Reject_all]" "reject?${user_ids}referer=$referer" "[_ dotlrn.Reject_all]"] } else { - set pend_actions "" + set pend_actions "" } } else { set pend_actions "" } template::list::create -name pending_users -multirow pending_users -key user_id -actions $pend_actions -elements { last_name { - label "[_ acs-subsite.Last_name]" - html "align left" - display_template { - @pending_users.last_name;noquote@ - } + label "[_ acs-subsite.Last_name]" + html "align left" + display_template { + @pending_users.last_name;noquote@ + } } first_names { - label "[_ acs-subsite.First_names]" - html "align left" - display_template { - @pending_users.first_names@ - } + label "[_ acs-subsite.First_names]" + html "align left" + display_template { + @pending_users.first_names@ + } } email { - label "[_ dotlrn.Email_1]" - html "align left" - display_template { - @pending_users.email@ - } + label "[_ dotlrn.Email_1]" + html "align left" + display_template { + @pending_users.email@ + } } role { - label "[_ dotlrn.Role]" - html "align left" + label "[_ dotlrn.Role]" + html "align left" } action { - label "[_ dotlrn.Actions]" - html "align left" - display_template { - #dotlrn.Approve# | - #dotlrn.Reject# - } + label "[_ dotlrn.Actions]" + html "align left" + display_template { + #dotlrn.Approve# | + #dotlrn.Reject# + } } } -set subcomm_p [dotlrn_community::subcommunity_p -community_id $community_id] - if {$subcomm_p} { form create parent_users_form @@ -247,29 +221,29 @@ } if {[form is_valid parent_users_form]} { - set user_ids_to_email [list] + set user_ids_to_email [list] foreach user $parent_user_list { set rel [element get_value parent_users_form "selected_user.[ns_set get $user user_id]"] if {![string match $rel none]} { dotlrn_community::add_user -rel_type $rel $community_id [ns_set get $user user_id] - lappend user_ids_to_email [ns_set get $user user_id] + lappend user_ids_to_email [ns_set get $user user_id] } } - if {[llength $user_ids_to_email]} { - set return_url [export_vars -base member-email-confirm {{user_id $user_ids_to_email} community_id}] - } else { - set return_url [ns_conn url] - } + if {[llength $user_ids_to_email]} { + set return_url [export_vars -base member-email-confirm {{user_id $user_ids_to_email} community_id}] + } else { + set return_url [ns_conn url] + } ad_returnredirect $return_url } } if {[exists_and_not_null reset] && [exists_and_not_null reltype]} { -set result "" + set result "" db_multirow reset_members select_members {} { - rp_form_put user_id $member_id + rp_form_put user_id $member_id } rp_form_put referer "one-community" rp_form_put community_id $community_id