Index: openacs-4/packages/assessment/www/asm-admin/send-mail.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/send-mail.tcl,v diff -u -r1.3 -r1.3.6.1 --- openacs-4/packages/assessment/www/asm-admin/send-mail.tcl 8 Apr 2005 00:50:40 -0000 1.3 +++ openacs-4/packages/assessment/www/asm-admin/send-mail.tcl 7 Jul 2007 00:27:51 -0000 1.3.6.1 @@ -1,115 +1,122 @@ -ad_page_contract { +# packages/assessment/www/asm-admin/send-mail-to.tcl - this page offers options for sending email regarding - an assessment to various groups - - @param assessment_id +ad_page_contract { - @author dave@thedesignexperience.org - @date July 29, 2002 - @cvs-id $Id: -} { - assessment_id:integer,notnull - {to "responded"} + Choose who to send mail to + + @author Dave Bauer (dave@thedesignexperience.org) + @creation-date 2007-07-06 + @cvs-id $Id$ + +} -query { + {assessment_id ""} + {session_id ""} + {return_url ""} } -properties { context:onevalue page_title:onevalue } set package_id [ad_conn package_id] set user_id [ad_conn user_id] -set sender_id [ad_conn user_id] -permission::require_permission -object_id $package_id -privilege create -permission::require_permission -object_id $assessment_id -privilege admin +permission::require_permission \ + -privilege "admin" \ + -party_id $user_id \ + -object_id $package_id -# Get the assessment data as::assessment::data -assessment_id $assessment_id - -if {![info exists assessment_data(assessment_id)]} { - ad_return_complaint 1 "[_ assessment.Requested_assess_does]" - ad_script_abort -} - set page_title "[_ assessment.Send_Mail]" set assessment_name $assessment_data(title) set context [list [list index [_ assessment.admin]] [list [export_vars -base one-a {assessment_id}] $assessment_data(title)] $page_title] -db_1row select_sender_info {} -set dotlrn_installed_p [apm_package_installed_p dotlrn] -if {$dotlrn_installed_p} { - set rel_type "dotlrn_member_rel" - set community_id [dotlrn_community::get_community_id] - set segment_id [db_string select_rel_segment_id {}] - set community_name [dotlrn_community::get_community_name $community_id] - set community_url "[ad_parameter -package_id [ad_acs_kernel_id] SystemURL][dotlrn_community::get_community_url $community_id]" +ad_form -name send-mail -has_submit 1 -form { + {subject:text(text) {value $assessment_name} {label "[_ assessment.Message_Subject]"} {html {size 50}}} + {message:text(textarea) {label "[_ assessment.Enter_Message]"} {html {rows 15 cols 60}}} + {assessment_id:text(hidden) {value $assessment_id}} + {formbutton_ok:text(submit) {label "[_ acs-templating.OK]"}} +} +if {[llength $session_id]} { + set options [db_list_of_lists get_session_user_options "select u.last_name || ', ' || u.first_names,user_id from acs_users_all u, as_sessions s where s.session_id in ([template::util::tcl_to_sql_list $session_id]) and u.user_id = s.subject_id"] + ad_form -extend -name send-mail -form { + {user_ids:text(checkbox) {label "[_ assessment.Send_mail_to_the_selected_users]"} {options $options}} + {session_id:text(hidden) {value $session_id}} + } +} else { set n_responses [db_string n_responses {}] + if {$n_responses > 0} { - ad_form -name send-mail -form { - {to:text(radio) {options { - {"[_ assessment.lt_Everyone_eligible_to_]" "all"} - {"[_ assessment.lt_Everyone_who_has_alre]" "responded"} - {"[_ assessment.lt_Everyone_who_has_not_]" "not_responded"}}} - {label "[_ assessment.Send_mail_to]"} - {value $to} - } - } + ad_form -extend -name send-mail -form { + {to:text(radio) {options { + {"[_ assessment.lt_Everyone_eligible_to_]" "all"} + {"[_ assessment.lt_Everyone_who_has_alre]" "responded"} + {"[_ assessment.lt_Everyone_who_has_not_]" "not_responded"}}} + {label "[_ assessment.Send_mail_to]"} + } + } } else { - ad_form -name send-mail -form { - {to:text(radio) {options { - {"[_ assessment.lt_Everyone_eligible_to_]" "all"} - {"[_ assessment.lt_Everyone_who_has_not_]" "not_responded"}}} - {label "[_ assessment.Send_mail_to]"} - {value $to} - } - } + ad_form -extend -name send-mail -form { + {to:text(radio) {options { + {"[_ assessment.lt_Everyone_eligible_to_]" "all"} + {"[_ assessment.lt_Everyone_who_has_not_]" "not_responded"}}} + {label "[_ assessment.Send_mail_to]"} + {value $to} + } + } } -} else { - ad_form -name send-mail -form { - {to:text(radio) {options { - {"[_ assessment.lt_Everyone_who_has_alre]" "responded"}}} - {label "[_ assessment.Send_mail_to]"} - {value ""} - } - } } -ad_form -extend -name send-mail -form { - {subject:text(text) {value $assessment_name} {label "[_ assessment.Message_Subject]"} {html {size 50}}} - {message:text(textarea) {label "[_ assessment.Enter_Message]"} {html {rows 15 cols 60}}} - {assessment_id:text(hidden) {value $assessment_id}} +ad_form -extend -name send-mail -on_request { + if {[info exists options]} { + set user_ids [list] + foreach elm $options { + lappend user_ids [lindex $elm 1] + } + } } -on_submit { + acs_user::get -user_id $user_id -array sender + set sender_email $sender(email) + set sender_first_names $sender(first_names) + set sender_last_name $sender(last_name) set query "" - if {$dotlrn_installed_p} { + if {[info exists to] && $to ne ""} { switch $to { all { - set query [db_map dotlrn_all] + set query [db_map all] } responded { - set query [db_map dotlrn_responded] + set query [db_map responded] } not_responded { - set query [db_map dotlrn_not_responded] + set query [db_map not_responded] } } + } elseif {[info exists user_ids] && [llength $user_ids]} { + set query [db_map list_of_user_ids] } else { set query [db_map responded] } - + bulk_mail::new \ -package_id $package_id \ -from_addr $sender_email \ -subject $subject \ -message $message \ -query $query - ad_returnredirect [export_vars -base one-a {assessment_id}] + if {$return_url eq ""} { + set return_url [export_vars -base one-a {assessment_id}] + } + set redirect_message "[_ assessment.Mail_subject_sent]" + ad_returnredirect -message $redirect_message $return_url ad_script_abort + + } -ad_return_template +m \ No newline at end of file