Index: openacs-4/packages/mail-tracking/sql/postgresql/mail-tracking-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/mail-tracking/sql/postgresql/mail-tracking-create.sql,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/mail-tracking/sql/postgresql/mail-tracking-create.sql	15 Jun 2005 14:07:57 -0000	1.2
+++ openacs-4/packages/mail-tracking/sql/postgresql/mail-tracking-create.sql	15 Jun 2005 15:40:52 -0000	1.3
@@ -16,12 +16,15 @@
 --  ======================================================
 
 create table acs_mail_log (
-	message_id		varchar(300)
-				constraint acs_mail_log_message_id_pk
-				primary key,
-	owner_id		integer
+	
+	log_id			integer
+				constraint acs_mail_log_object_id_fk
+				references acs_objects(object_id),
+	message_id		varchar(300),
+	-- object_id of the object that triggered the sending of the email
+	object_id		integer
 				constraint acs_mail_log_owner_id_fk
-				references users(user_id),
+				references acs_objects(object_id),
 	recipient_id		integer
 				constraint acs_mail_log_recipient_id_fk
 				references parties(party_id),
@@ -34,22 +37,49 @@
 	sent_date		timestamp);
 
 
+-- create the content type
+select acs_object_type__create_type (
+   'mail_log',              -- content_type
+   '#mail-tracking.ACS_Mail_Log_Entry#',             -- pretty_name 
+   '#mail-tracking.ACS_Mail_Log_Entries#',           -- pretty_plural
+   'acs_object',                  -- supertype
+   'acs_mail_log',            -- table_name (should this be pm_task?)
+   'log_id',                   -- id_column 
+   'mail_tracking',              -- package_name
+   'f',                           -- abstract_p
+   NULL,                          -- type_extension_table
+   NULL                           -- name_method
+);
 
-create function acs_mail_log__new (integer, integer, integer, integer, varchar, varchar)
+create or replace function acs_mail_log__new (integer,varchar, integer, integer, integer, varchar, varchar,integer,varchar,integer,integer)
 returns integer as '
-declare
-	p_message_id		alias for $1;
-	p_recipient_id		alias for $2;
-	p_sender_id		alias for $3;
-	p_package_id		alias for $4;
-	p_subject		alias for $5;
-	p_body			alias for $6;
+declare	
+	p_log_id alias for $1;
+	p_message_id alias for $2;
+	p_recipient_id alias for $3;
+	p_sender_id alias for $4;
+	p_package_id alias for $5;
+	p_subject alias for $6;
+	p_body alias for $7;
+	p_creation_user alias for $8;
+        p_creation_ip alias for $9;
+        p_context_id alias for $10;
+	p_object_id alias for $11;
+	v_log_id acs_mail_log.log_id%TYPE;
 begin
+	v_log_id := acs_object__new (
+		p_log_id,         -- object_id
+		''mail_log'', -- object_type
+		now(),   -- creation_date
+		p_creation_user,   -- creation_user
+		p_creation_ip,     -- creation_ip
+	        null
+	);
 
 	insert into acs_mail_log
-		(message_id, recipient_id, sender_id, package_id, subject, body, sent_date)
+		(log_id, message_id, recipient_id, sender_id, package_id, subject, body, sent_date, object_id)
 	values
-		(p_message_id, p_recipient_id, p_sender_id, p_package_id, p_subject, p_body, now());
+		(v_log_id, p_message_id, p_recipient_id, p_sender_id, p_package_id, p_subject, p_body, now(), p_object_id);
 
 	return 0;
 
