Index: openacs-4/packages/dotlrn/www/spam.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/spam.tcl,v diff -u -r1.22 -r1.23 --- openacs-4/packages/dotlrn/www/spam.tcl 29 Jun 2004 10:18:03 -0000 1.22 +++ openacs-4/packages/dotlrn/www/spam.tcl 24 Jul 2004 08:34:10 -0000 1.23 @@ -22,7 +22,8 @@ {recipients:integer,multiple ""} {recipients_str ""} {community_id ""} - {rel_type "dotlrn_member_rel"} + {rel_types:multiple "" } + {rel_types_str ""} {referer "control-panel"} {spam_all 0} } -validate { @@ -36,6 +37,11 @@ set recipients [split $recipients_str] } } + rel_types_split { + if { [info exists rel_types_str] && ![info exists rel_types] } { + set rel_types [split $rel_types_str] + } + } } -properties { context_bar:onevalue portal_id:onevalue @@ -61,7 +67,6 @@ set sender_first_names [db_quote $sender_first_names] set sender_last_name [db_quote $sender_last_name] - form create spam_message element create spam_message community_id \ @@ -77,13 +82,6 @@ -html {size 60} \ -value $sender_email -element create spam_message rel_type \ - -label [_ dotlrn.To] \ - -datatype text \ - -widget select \ - -options [list [list [_ dotlrn.Members] dotlrn_member_rel] [list [_ dotlrn.Administrators] dotlrn_admin_rel]] \ - -value $rel_type - element create spam_message subject \ -label [_ dotlrn.Subject] \ -datatype text \ @@ -92,17 +90,10 @@ element create spam_message message \ -label [_ dotlrn.Message] \ - -datatype text \ - -widget textarea \ + -datatype richtext \ + -widget richtext \ -html {rows 10 cols 80 wrap soft} -element create spam_message message_type \ - -label "[_ dotlrn.Message_Type]" \ - -datatype text \ - -widget select \ - -options [list [list [_ dotlrn.Plain_Text] "text"] [list [_ dotlrn.HTML] "html"]] \ - -value "text" - element create spam_message send_date \ -label [_ dotlrn.Send_Date] \ -datatype date \ @@ -122,6 +113,12 @@ -widget hidden \ -value $recipients +element create spam_message rel_types_str \ + -label rel_types \ + -datatype text \ + -widget hidden \ + -value $rel_types + element create spam_message spam_all \ -label spam \ -datatype text \ @@ -130,32 +127,60 @@ if {[ns_queryexists "form:confirm"]} { form get_values spam_message \ - community_id from rel_type subject message message_type send_date referer recipients_str spam_all + community_id from rel_types_str subject message send_date referer recipients_str spam_all - set segment_id [db_string select_rel_segment_id {}] + set content [string trimright [template::util::richtext::get_property contents $message]] + set format [string trimright [template::util::richtext::get_property format $message]] + 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]" + set recipients_str [join [split $recipients_str] ,] + set rel_types_str [join [split $rel_types_str] ','] + + +# POSTGRES - change to plural +# TODO - what if no rel_types + set safe_community_name [db_quote $community_name] + set extra_where_clause "" + if { $spam_all } { - set extra_where_clause "" - } else { - set extra_where_clause "and parties.party_id in ($recipients_str)" + # if there is a spam_all, choose all the rel_types! + + set rel_types_str [join [db_list select_rel_segments " + select rel_segments.rel_type + from rel_segments + where rel_segments.group_id = :community_id"] ','] + } + + if {[empty_string_p $recipients_str]} { + set recipients_str '' } + + set query [db_map sender_info] -ns_log notice "query: $query" + # TO DO CHANGE THE ORACLE QUERY + + ns_log notice "query: $query" + if {$format == "text/html"} { + set bulk_format "html" + } else { + set bulk_format "text" + } + bulk_mail::new \ -package_id [site_node_apm_integration::get_child_package_id -package_key [bulk_mail::package_key]] \ -send_date [template::util::date::get_property linear_date $send_date] \ -date_format "YYYY MM DD HH24 MI SS" \ -from_addr $from \ -subject "\[$community_name\] $subject" \ - -message $message \ - -message_type $message_type \ + -message $content \ + -message_type $bulk_format \ -query $query ad_returnredirect $referer