Index: openacs-4/packages/contacts/www/mail-tracking.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/mail-tracking.adp,v diff -u -r1.4 -r1.5 --- openacs-4/packages/contacts/www/mail-tracking.adp 19 Dec 2006 10:58:05 -0000 1.4 +++ openacs-4/packages/contacts/www/mail-tracking.adp 25 Feb 2007 09:51:39 -0000 1.5 @@ -5,4 +5,5 @@ party="@party_id@" page="@page@" page_size="25" + pkg_id="@pkg_id@" /> \ No newline at end of file Index: openacs-4/packages/contacts/www/mail-tracking.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/mail-tracking.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/contacts/www/mail-tracking.tcl 15 Feb 2006 10:06:36 -0000 1.6 +++ openacs-4/packages/contacts/www/mail-tracking.tcl 25 Feb 2007 09:51:39 -0000 1.7 @@ -6,6 +6,7 @@ {party_id ""} {orderby ""} {page "1"} + {pkg_id ""} } if {![exists_and_not_null party_id]} { Index: openacs-4/packages/mail-tracking/lib/messages.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/mail-tracking/lib/messages.tcl,v diff -u -r1.33 -r1.34 --- openacs-4/packages/mail-tracking/lib/messages.tcl 24 Dec 2006 11:12:24 -0000 1.33 +++ openacs-4/packages/mail-tracking/lib/messages.tcl 25 Feb 2007 09:51:39 -0000 1.34 @@ -23,7 +23,7 @@ party:optional {emp_mail_f:optional 1} sender:optional - package_id:optional + from_package_id:optional object_id:optional object:optional {orderby:optional "sent_date,desc"} @@ -60,13 +60,14 @@ } } - +set package_id_list [list] if { [exists_and_not_null sender_id] } { set sender $sender_id } if { [exists_and_not_null recipient_id] } { set recipient $recipient_id + set package_id_list [concat $package_id_list [db_list package_ids "select package_id from acs_mail_log where recipient_id = :sender"]] } if { [exists_and_not_null object_id] } { @@ -105,10 +106,6 @@ object { label "[_ mail-tracking.Object_id]" where_clause "object_id = :object" - } \ - pkg_id { - label "[_ mail-tracking.Package]" - where_clause "package_id = :pkg_id" } ] @@ -136,7 +133,22 @@ set recipient_where_clause "" } +# If we have a recipient filter, offer the filter for package_ids +set package_id_list [list] +if {$recipient_where_clause ne ""} { + set package_ids [db_list package_ids "select distinct package_id as package_id2 from acs_mail_log ml, acs_mail_log_recipient_map mlrm where ml.log_id = mlrm.log_id $recipient_where_clause"] + foreach package_id2 $package_ids { + lappend package_id_list [list [acs_object_name $package_id2] $package_id2] + } +} +# Always append the filter for package_ids, but note that it is only selectable if we filter by recipient +lappend filters pkg_id { + label "[_ mail-tracking.Package]" + values $package_id_list + where_clause "package_id = :pkg_id" +} + template::list::create \ -name messages \ -selected_format normal \