Index: openacs-4/packages/notifications/notifications.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/notifications.info,v diff -u -r1.11.2.10 -r1.11.2.11 --- openacs-4/packages/notifications/notifications.info 5 May 2003 09:34:10 -0000 1.11.2.10 +++ openacs-4/packages/notifications/notifications.info 12 Jun 2003 13:34:51 -0000 1.11.2.11 @@ -8,7 +8,7 @@ t notifications - + oracle postgresql @@ -17,10 +17,13 @@ Notification Management 2003-02-17 - + + + + Fisheye: Tag 1.2.2.1 refers to a dead (removed) revision in file `openacs-4/packages/notifications/sql/oracle/delivery-method-sc-create.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.3.2.1 refers to a dead (removed) revision in file `openacs-4/packages/notifications/sql/oracle/email-sc-impl-create.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.2.2.1 refers to a dead (removed) revision in file `openacs-4/packages/notifications/sql/oracle/notification-type-sc-create.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/notifications/sql/oracle/notifications-core-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/sql/oracle/notifications-core-create.sql,v diff -u -r1.8.2.3 -r1.8.2.4 --- openacs-4/packages/notifications/sql/oracle/notifications-core-create.sql 5 Mar 2003 15:02:57 -0000 1.8.2.3 +++ openacs-4/packages/notifications/sql/oracle/notifications-core-create.sql 12 Jun 2003 13:34:51 -0000 1.8.2.4 @@ -1,5 +1,5 @@ -- --- The Notifications Package +-- The Notifications -- -- @author Ben Adida (ben@openforce.net) -- @version $Id$ @@ -155,6 +155,9 @@ -- this is to allow responses to notifications response_id constraint notif_reponse_id_fk references acs_objects (object_id), + notif_user integer + constraint notif_user_id_fk + references users(user_id), notif_subject varchar(1000), notif_text clob, notif_html clob Index: openacs-4/packages/notifications/sql/oracle/notifications-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/sql/oracle/notifications-create.sql,v diff -u -r1.7 -r1.7.2.1 --- openacs-4/packages/notifications/sql/oracle/notifications-create.sql 9 Aug 2002 20:51:49 -0000 1.7 +++ openacs-4/packages/notifications/sql/oracle/notifications-create.sql 12 Jun 2003 13:34:51 -0000 1.7.2.1 @@ -16,11 +16,7 @@ @ notifications-replies-create.sql @ notifications-replies-package-create.sql --- the service contracts will eventually be created --- @ notifications-interval-sc-create.sql --- @ notifications-delivery-sc-create.sql - @ notification-type-sc-create.sql -@ delivery-method-sc-create.sql + @ notifications-init.sql -@ email-sc-impl-create.sql + Index: openacs-4/packages/notifications/sql/oracle/notifications-init.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/sql/oracle/notifications-init.sql,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/notifications/sql/oracle/notifications-init.sql 9 Aug 2002 20:51:49 -0000 1.4 +++ openacs-4/packages/notifications/sql/oracle/notifications-init.sql 12 Jun 2003 13:34:51 -0000 1.4.2.1 @@ -35,15 +35,6 @@ creation_ip => null ); --- This now done by email-sc-impl-create.sql --- --- v_foo:= notification_delivery_method.new( --- short_name => 'email', --- pretty_name => 'Email', --- creation_user => null, --- creation_ip => null --- ); - end; / show errors Index: openacs-4/packages/notifications/sql/oracle/notifications-package-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/sql/oracle/notifications-package-create.sql,v diff -u -r1.6.2.2 -r1.6.2.3 --- openacs-4/packages/notifications/sql/oracle/notifications-package-create.sql 5 Mar 2003 15:02:57 -0000 1.6.2.2 +++ openacs-4/packages/notifications/sql/oracle/notifications-package-create.sql 12 Jun 2003 13:34:51 -0000 1.6.2.3 @@ -330,6 +330,7 @@ object_id in notifications.object_id%TYPE, notif_date in notifications.notif_date%TYPE default sysdate, response_id in notifications.response_id%TYPE default null, + notif_user in notifications.notif_user%TYPE default null, notif_subject in notifications.notif_subject%TYPE default null, notif_text in varchar default null, notif_html in varchar default null, @@ -358,6 +359,7 @@ object_id in notifications.object_id%TYPE, notif_date in notifications.notif_date%TYPE default sysdate, response_id in notifications.response_id%TYPE default null, + notif_user in notifications.notif_user%TYPE default null, notif_subject in notifications.notif_subject%TYPE default null, notif_text in varchar default null, notif_html in varchar default null, @@ -379,9 +381,9 @@ ); insert into notifications - (notification_id, type_id, object_id, notif_date, response_id, notif_subject, notif_text, notif_html) + (notification_id, type_id, object_id, notif_date, response_id, notif_user, notif_subject, notif_text, notif_html) values - (v_notification_id, type_id, object_id, notif_date, response_id, notif_subject, notif_text, notif_html); + (v_notification_id, type_id, object_id, notif_date, response_id, notif_user, notif_subject, notif_text, notif_html); return v_notification_id; end new; Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/notifications/sql/oracle/upgrade/upgrade-4.6.2-4.6.4.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.3.2.1 refers to a dead (removed) revision in file `openacs-4/packages/notifications/sql/postgresql/delivery-method-sc-create.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.2.2.1 refers to a dead (removed) revision in file `openacs-4/packages/notifications/sql/postgresql/email-sc-impl-create.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.2.2.1 refers to a dead (removed) revision in file `openacs-4/packages/notifications/sql/postgresql/notification-type-sc-create.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/notifications/sql/postgresql/notifications-core-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/sql/postgresql/notifications-core-create.sql,v diff -u -r1.7.2.4 -r1.7.2.5 --- openacs-4/packages/notifications/sql/postgresql/notifications-core-create.sql 5 Mar 2003 15:03:35 -0000 1.7.2.4 +++ openacs-4/packages/notifications/sql/postgresql/notifications-core-create.sql 12 Jun 2003 13:34:51 -0000 1.7.2.5 @@ -167,6 +167,10 @@ response_id integer constraint notif_reponse_id_fk references acs_objects (object_id), + -- this is the user that caused the notification to go out + notif_user integer + constraint notif_user_id_fk + references users(user_id), notif_subject varchar(1000), notif_text text, notif_html text @@ -199,78 +203,68 @@ -- -- Object Types -- -create function inline_0 () -returns integer as ' -begin +select acs_object_type__create_type( + 'notification_interval', + 'Notification Interval', + 'Notification Intervals', + 'acs_object', + 'notification_intervals', + 'interval_id', + 'notification_interval', + 'f', + null, + null +); - perform acs_object_type__create_type( - ''notification_interval'', - ''Notification Interval'', - ''Notification Intervals'', - ''acs_object'', - ''notification_intervals'', - ''interval_id'', - ''notification_interval'', - ''f'', - null, - null - ); +select acs_object_type__create_type( + 'notification_delivery_method', + 'Notification Delivery Method', + 'Notification Delivery Methods', + 'acs_object', + 'notification_delivery_methods', + 'delivery_method_id', + 'notification_delivery_method', + 'f', + null, + null +); - perform acs_object_type__create_type( - ''notification_delivery_method'', - ''Notification Delivery Method'', - ''Notification Delivery Methods'', - ''acs_object'', - ''notification_delivery_methods'', - ''delivery_method_id'', - ''notification_delivery_method'', - ''f'', - null, - null - ); +select acs_object_type__create_type( + 'notification_type', + 'Notification Type', + 'Notification Types', + 'acs_object', + 'notification_types', + 'type_id', + 'notification_type', + 'f', + null, + null +); - perform acs_object_type__create_type( - ''notification_type'', - ''Notification Type'', - ''Notification Types'', - ''acs_object'', - ''notification_types'', - ''type_id'', - ''notification_type'', - ''f'', - null, - null - ); +select acs_object_type__create_type( + 'notification_request', + 'Notification Request', + 'Notification Requests', + 'acs_object', + 'notification_requests', + 'request_id', + 'notification_request', + 'f', + null, + null +); - perform acs_object_type__create_type( - ''notification_request'', - ''Notification Request'', - ''Notification Requests'', - ''acs_object'', - ''notification_requests'', - ''request_id'', - ''notification_request'', - ''f'', - null, - null - ); +select acs_object_type__create_type( + 'notification', + 'Notification', + 'Notifications', + 'acs_object', + 'notifications', + 'notification_id', + 'notification', + 'f', + null, + null +); - perform acs_object_type__create_type( - ''notification'', - ''Notification'', - ''Notifications'', - ''acs_object'', - ''notifications'', - ''notification_id'', - ''notification'', - ''f'', - null, - null - ); - - return null; - -end;' language 'plpgsql'; - -select inline_0(); -drop function inline_0(); Index: openacs-4/packages/notifications/sql/postgresql/notifications-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/sql/postgresql/notifications-create.sql,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/notifications/sql/postgresql/notifications-create.sql 9 Aug 2002 20:51:50 -0000 1.5 +++ openacs-4/packages/notifications/sql/postgresql/notifications-create.sql 12 Jun 2003 13:34:52 -0000 1.5.2.1 @@ -14,12 +14,6 @@ \i notifications-replies-create.sql \i notifications-replies-package-create.sql --- the service contracts will eventually be created --- @ notifications-interval-sc-create.sql --- @ notifications-delivery-sc-create.sql - \i notification-type-sc-create.sql -\i delivery-method-sc-create.sql \i notifications-init.sql -\i email-sc-impl-create.sql Index: openacs-4/packages/notifications/sql/postgresql/notifications-init.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/sql/postgresql/notifications-init.sql,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/notifications/sql/postgresql/notifications-init.sql 9 Aug 2002 20:51:50 -0000 1.4 +++ openacs-4/packages/notifications/sql/postgresql/notifications-init.sql 12 Jun 2003 13:34:52 -0000 1.4.2.1 @@ -8,56 +8,32 @@ -- GNU GPL v2 -- --- initialize some stuff -create function inline_0 () -returns integer as ' -begin +select notification_interval__new ( + null, + 'daily', + 3600 * 24, + now(), + null, + null, + null +); - perform notification_interval__new ( - null, - ''daily'', - 3600 * 24, - now(), - null, - null, - null - ); +select notification_interval__new ( + null, + 'hourly', + 3600, + now(), + null, + null, + null +); - perform notification_interval__new ( - null, - ''hourly'', - 3600, - now(), - null, - null, - null - ); - - perform notification_interval__new ( - null, - ''instant'', - 0, - now(), - null, - null, - null - ); - --- This is now done by email-sc-impl-create.sql --- --- perform notification_delivery_method__new ( --- null, --- ''email'', --- ''Email'', --- now(), --- null, --- null, --- null --- ); - - return null; - -end;' language 'plpgsql'; - -select inline_0(); -drop function inline_0 (); +select notification_interval__new ( + null, + 'instant', + 0, + now(), + null, + null, + null +); Index: openacs-4/packages/notifications/sql/postgresql/notifications-package-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/sql/postgresql/notifications-package-create.sql,v diff -u -r1.8.2.4 -r1.8.2.5 --- openacs-4/packages/notifications/sql/postgresql/notifications-package-create.sql 5 Mar 2003 15:03:35 -0000 1.8.2.4 +++ openacs-4/packages/notifications/sql/postgresql/notifications-package-create.sql 12 Jun 2003 13:34:52 -0000 1.8.2.5 @@ -236,23 +236,24 @@ end; ' language 'plpgsql'; -select define_function_args ('notification__new','notification_id,type_id,object_id,notif_date,response_id,notif_subject,notif_text,notif_html,creation_date,creation_user,creation_ip,context_id'); +select define_function_args ('notification__new','notification_id,type_id,object_id,notif_date,response_id,notif_user,notif_subject,notif_text,notif_html,creation_date,creation_user,creation_ip,context_id'); -create function notification__new(integer,integer,integer,timestamptz,integer,varchar,text,text,timestamptz,integer,varchar,integer) +create or replace function notification__new(integer,integer,integer,timestamptz,integer,integer,varchar,text,text,timestamptz,integer,varchar,integer) returns integer as ' declare p_notification_id alias for $1; p_type_id alias for $2; p_object_id alias for $3; p_notif_date alias for $4; p_response_id alias for $5; - p_notif_subject alias for $6; - p_notif_text alias for $7; - p_notif_html alias for $8; - p_creation_date alias for $9; - p_creation_user alias for $10; - p_creation_ip alias for $11; - p_context_id alias for $12; + p_notif_user alias for $6; + p_notif_subject alias for $7; + p_notif_text alias for $8; + p_notif_html alias for $9; + p_creation_date alias for $10; + p_creation_user alias for $11; + p_creation_ip alias for $12; + p_context_id alias for $13; v_notification_id integer; v_notif_date notifications.notif_date%TYPE; begin @@ -273,9 +274,9 @@ insert into notifications - (notification_id, type_id, object_id, notif_date, response_id, notif_subject, notif_text, notif_html) + (notification_id, type_id, object_id, notif_date, response_id, notif_user, notif_subject, notif_text, notif_html) values - (v_notification_id, p_type_id, p_object_id, v_notif_date, p_response_id, p_notif_subject, p_notif_text, p_notif_html); + (v_notification_id, p_type_id, p_object_id, v_notif_date, p_response_id, p_notif_user, p_notif_subject, p_notif_text, p_notif_html); return v_notification_id; end; Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/notifications/sql/postgresql/upgrade/upgrade-4.6.2-4.6.4.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/notifications/tcl/apm-callback-procs.tcl'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/notifications/tcl/delivery-method-procs-oracle.xql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/notifications/tcl/delivery-method-procs-postgresql.xql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/notifications/tcl/delivery-method-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/tcl/delivery-method-procs.tcl,v diff -u -r1.5.2.1 -r1.5.2.2 --- openacs-4/packages/notifications/tcl/delivery-method-procs.tcl 30 Oct 2002 21:12:05 -0000 1.5.2.1 +++ openacs-4/packages/notifications/tcl/delivery-method-procs.tcl 12 Jun 2003 13:34:52 -0000 1.5.2.2 @@ -14,63 +14,108 @@ } -namespace eval notification::delivery { +namespace eval notification::delivery {} - ad_proc -private get_impl_key { - {-delivery_method_id:required} - } { - Return the service contract implementation key for notification delivery methods - } { - return [db_string select_impl_key {}] + +ad_proc -private notification::delivery::get_impl_key { + {-delivery_method_id:required} +} { + Return the service contract implementation key for notification delivery methods +} { + return [db_string select_impl_key {}] +} + +ad_proc -public notification::delivery::send { + {-delivery_method_id:required} + {-reply_object_id ""} + {-notification_type_id:required} + {-from_user_id ""} + {-to_user_id:required} + {-subject:required} + {-content:required} +} { + do the delivery of certain content to a particular user using a particular delivery method. + This is just a wrapper proc that sets up the call to the service contract implementation for + a given delivery method. +} { + #need to check if its ok to notify this user in this way. For now just checks if they are an approved user. + if { ![notification::security::can_notify_user -user_id $to_user_id -delivery_method_id $delivery_method_id] } { + ns_log notice "Blocked notification to $to_user_id subject:$subject" + return "Blocked" } - ad_proc -public send { - {-delivery_method_id:required} - {-reply_object_id ""} - {-notification_type_id:required} - {-to_user_id:required} - {-subject:required} - {-content:required} - } { - do the delivery of certain content to a particular user using a particular delivery method. - This is just a wrapper proc that sets up the call to the service contract implementation for - a given delivery method. - } { - #need to check if its ok to notify this user in this way. For now just checks if they are an approved user. - if { ![notification::security::can_notify_user -user_id $to_user_id -delivery_method_id $delivery_method_id] } { - ns_log notice "Blocked notification to $to_user_id subject:$subject" - return "Blocked" - } + # Get the implementation key + set impl_key [get_impl_key -delivery_method_id $delivery_method_id] - # Get the implementation key - set impl_key [get_impl_key -delivery_method_id $delivery_method_id] + # Prepare the arguments + set args [list $from_user_id $to_user_id $reply_object_id $notification_type_id $subject $content] - # Prepare the arguments - set args [list $to_user_id $reply_object_id $notification_type_id $subject $content] + # Make the generic call + return [acs_sc_call NotificationDeliveryMethod Send $args $impl_key] +} - # Make the generic call - return [acs_sc_call NotificationDeliveryMethod Send $args $impl_key] - } +ad_proc -public notification::delivery::scan_replies { + {-delivery_method_id:required} +} { + scan for replies. + + Every delivery method allows for replies. This is the wrapper proc that + indicates to the delivery method service contract implementation that it's time to + scan for replies. +} { + # Get the implementation key + set impl_key [get_impl_key -delivery_method_id $delivery_method_id] - ad_proc -public scan_replies { - {-delivery_method_id:required} - } { - scan for replies. - - Every delivery method allows for replies. This is the wrapper proc that - indicates to the delivery method service contract implementation that it's time to - scan for replies. - } { - # Get the implementation key - set impl_key [get_impl_key -delivery_method_id $delivery_method_id] + # Prepare the arguments + set args [list] - # Prepare the arguments - set args [list] + # ns_log Notice "NOTIF-DELIV-METHOD: about to call acs_sc on $impl_key" - # ns_log Notice "NOTIF-DELIV-METHOD: about to call acs_sc on $impl_key" + # Make the generic call + return [acs_sc_call NotificationDeliveryMethod ScanReplies $args $impl_key] +} - # Make the generic call - return [acs_sc_call NotificationDeliveryMethod ScanReplies $args $impl_key] - } +ad_proc -public notification::delivery::new { + {-delivery_method_id ""} + {-sc_impl_id:required} + {-short_name:required} + {-pretty_name:required} +} { + Register a new delivery method with the notification service. +} { + set extra_vars [ns_set create] + oacs_util::vars_to_ns_set \ + -ns_set $extra_vars \ + -var_list {delivery_method_id sc_impl_id short_name pretty_name} + + return [package_instantiate_object \ + -extra_vars $extra_vars \ + "notification_delivery_method"] } + +ad_proc -public notification::delivery::delete { + {-delivery_method_id:required} +} { + Unregister a delivery method with the notification service. +} { + db_exec_plsql delete {} +} + +ad_proc -public notification::delivery::update_sc_impl_id { + {-delivery_method_id ""} + {-sc_impl_id:required} +} { + Register a new service contract implementation with an existing delivery method. +} { + db_dml update {} +} + +ad_proc -public notification::delivery::get_id { + {-short_name:required} +} { + Return the delivery_method_id from the short_name. +} { + return [db_string select_delivery_method_id {}] +} + Index: openacs-4/packages/notifications/tcl/delivery-method-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/tcl/delivery-method-procs.xql,v diff -u -r1.2 -r1.2.2.1 --- openacs-4/packages/notifications/tcl/delivery-method-procs.xql 28 Jun 2002 20:21:50 -0000 1.2 +++ openacs-4/packages/notifications/tcl/delivery-method-procs.xql 12 Jun 2003 13:34:52 -0000 1.2.2.1 @@ -2,12 +2,28 @@ - - -select impl_name from acs_sc_impls, notification_delivery_methods -where acs_sc_impls.impl_id = notification_delivery_methods.sc_impl_id -and delivery_method_id= :delivery_method_id - - + + + select impl_name from acs_sc_impls, notification_delivery_methods + where acs_sc_impls.impl_id = notification_delivery_methods.sc_impl_id + and delivery_method_id= :delivery_method_id + + + + + select delivery_method_id + from notification_delivery_methods + where short_name = :short_name + + + + + + update notification_delivery_methods + set sc_impl_id = :sc_impl_id + where delivery_method_id = :delivery_method_id + + + Index: openacs-4/packages/notifications/tcl/notification-email-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/tcl/notification-email-procs.tcl,v diff -u -r1.9.2.4 -r1.9.2.5 --- openacs-4/packages/notifications/tcl/notification-email-procs.tcl 1 Nov 2002 18:48:25 -0000 1.9.2.4 +++ openacs-4/packages/notifications/tcl/notification-email-procs.tcl 12 Jun 2003 13:34:52 -0000 1.9.2.5 @@ -81,24 +81,44 @@ } ad_proc -public send { + from_user_id to_user_id reply_object_id notification_type_id subject content } { - Send the actual email + Send the actual email. + + @param from_user_id The user_id of the user that the email should be sent as. Leave empty for the standard mailer from address. } { # Get email set email [cc_email_from_party $to_user_id] - append content "\nGetting too much email? Manage your notifications at: [manage_notifications_url]" + append content "\nGetting too much email? Manage your notifications at: [manage_notifications_url]" + set extra_headers [ns_set new] + + if { ![empty_string_p $from_user_id] && [db_0or1row get_person {}]} { + set from_email "\"$first_names $last_name\" <[cc_email_from_party $from_user_id]>" + + # Set the Reply-To and Mail-Followup-To addresses to the + # address of the notifications handler. + set reply_to [reply_address -object_id $reply_object_id -type_id $notification_type_id] + ns_set put $extra_headers Reply-To $reply_to + ns_set put $extra_headers Mail-Followup-To $reply_to + } else { + set from_email [reply_address -object_id $reply_object_id -type_id $notification_type_id] + } + + ns_set put $extra_headers Precedence list + acs_mail_lite::send \ -to_addr $email \ - -from_addr [reply_address -object_id $reply_object_id -type_id $notification_type_id] \ + -from_addr $from_email \ -subject $subject \ - -body $content + -body $content \ + -extraheaders $extra_headers } ad_proc -private load_qmail_mail_queue { Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/notifications/tcl/notification-email-procs.xql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/notifications/tcl/notification-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/tcl/notification-procs.tcl,v diff -u -r1.3.2.5 -r1.3.2.6 --- openacs-4/packages/notifications/tcl/notification-procs.tcl 15 May 2003 07:54:42 -0000 1.3.2.5 +++ openacs-4/packages/notifications/tcl/notification-procs.tcl 12 Jun 2003 13:34:52 -0000 1.3.2.6 @@ -83,6 +83,7 @@ {-force:boolean} {-default_request_data {}} {-return_notified:boolean} + {-notif_user {}} } { Create a new notification if any notification requests exist for the object and type. @@ -264,6 +265,10 @@ } } + if { [empty_string_p $notif_user] && [ad_conn isconnected] } { + set notif_user [ad_conn user_id] + } + # Actually carry out inserting the notification db_transaction { if { $subset_arg_p || $already_notified_arg_p } { @@ -295,7 +300,9 @@ # Set up the vars set extra_vars [ns_set create] - oacs_util::vars_to_ns_set -ns_set $extra_vars -var_list {notification_id type_id object_id response_id notif_subject notif_text notif_html} + oacs_util::vars_to_ns_set \ + -ns_set $extra_vars \ + -var_list {notification_id type_id object_id response_id notif_subject notif_text notif_html notif_user} # Create the notification package_instantiate_object -extra_vars $extra_vars notification Index: openacs-4/packages/notifications/tcl/sweep-procs-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/tcl/Attic/sweep-procs-oracle.xql,v diff -u -r1.9.2.5 -r1.9.2.6 --- openacs-4/packages/notifications/tcl/sweep-procs-oracle.xql 4 Jun 2003 20:41:03 -0000 1.9.2.5 +++ openacs-4/packages/notifications/tcl/sweep-procs-oracle.xql 12 Jun 2003 13:34:52 -0000 1.9.2.6 @@ -32,7 +32,8 @@ notification_requests.delivery_method_id, notification_requests.request_id, notifications.response_id, - notifications.notif_date + notifications.notif_date, + notifications.notif_user from notifications, notification_requests where notifications.type_id = notification_requests.type_id and notifications.object_id = notification_requests.object_id Index: openacs-4/packages/notifications/tcl/sweep-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/tcl/Attic/sweep-procs-postgresql.xql,v diff -u -r1.3.2.5 -r1.3.2.6 --- openacs-4/packages/notifications/tcl/sweep-procs-postgresql.xql 4 Jun 2003 20:43:17 -0000 1.3.2.5 +++ openacs-4/packages/notifications/tcl/sweep-procs-postgresql.xql 12 Jun 2003 13:34:52 -0000 1.3.2.6 @@ -25,7 +25,8 @@ type_id, delivery_method_id, response_id, - notif_date + notif_date, + notif_user from notifications inner join notification_requests using (type_id, object_id) inner join acs_objects on (notification_requests.request_id = acs_objects.object_id) left outer join notification_user_map using (notification_id, user_id) Index: openacs-4/packages/notifications/tcl/sweep-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/tcl/sweep-procs.tcl,v diff -u -r1.9.2.3 -r1.9.2.4 --- openacs-4/packages/notifications/tcl/sweep-procs.tcl 5 Mar 2003 15:04:04 -0000 1.9.2.3 +++ openacs-4/packages/notifications/tcl/sweep-procs.tcl 12 Jun 2003 13:34:52 -0000 1.9.2.4 @@ -128,12 +128,13 @@ db_transaction { # Send it notification::delivery::send \ - -to_user_id [ns_set get $notif user_id] \ - -notification_type_id [ns_set get $notif type_id] \ - -subject [ns_set get $notif notif_subject] \ - -content [ns_set get $notif notif_text] \ - -reply_object_id [ns_set get $notif response_id] \ - -delivery_method_id [ns_set get $notif delivery_method_id] + -from_user_id [ns_set get $notif notif_user] \ + -to_user_id [ns_set get $notif user_id] \ + -notification_type_id [ns_set get $notif type_id] \ + -subject [ns_set get $notif notif_subject] \ + -content [ns_set get $notif notif_text] \ + -reply_object_id [ns_set get $notif response_id] \ + -delivery_method_id [ns_set get $notif delivery_method_id] # Markt it as sent notification::mark_sent \