Index: openacs-4/packages/lars-blogger/sql/oracle/upgrade/upgrade-1.0a3-1.0a4.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/upgrade/upgrade-1.0a3-1.0a4.sql,v
diff -u -N -r1.1 -r1.2
--- openacs-4/packages/lars-blogger/sql/oracle/upgrade/upgrade-1.0a3-1.0a4.sql	14 Dec 2003 11:10:44 -0000	1.1
+++ openacs-4/packages/lars-blogger/sql/oracle/upgrade/upgrade-1.0a3-1.0a4.sql	14 Dec 2003 12:32:27 -0000	1.2
@@ -20,3 +20,98 @@
 
 alter table pinds_blog_entries drop column posted_date;
 
+create or replace package body pinds_blog_entry
+as
+
+    function new (
+        entry_id in pinds_blog_entries.entry_id%TYPE default null,
+        package_id in pinds_blog_entries.package_id%TYPE,
+        title in pinds_blog_entries.title%TYPE default null,
+        title_url in pinds_blog_entries.title_url%TYPE default null,
+        content in varchar default null,
+        content_format in varchar default 'text/html',
+        entry_date in pinds_blog_entries.entry_date%TYPE default null,
+        draft_p in pinds_blog_entries.draft_p%TYPE default 'f',
+        creation_user in acs_objects.creation_user%TYPE default null,
+        creation_ip in acs_objects.creation_ip%TYPE default null
+    ) return pinds_blog_entries.entry_id%TYPE
+    is
+        v_entry_id pinds_blog_entries.entry_id%TYPE;
+    begin
+
+        v_entry_id := acs_object.new(
+            object_id => pinds_blog_entry.new.entry_id,
+            object_type => 'pinds_blog_entry',
+            creation_date => sysdate,
+            creation_user => pinds_blog_entry.new.creation_user,
+            creation_ip => pinds_blog_entry.new.creation_ip,
+            context_id => pinds_blog_entry.new.package_id
+        );
+
+        insert into pinds_blog_entries (
+            entry_id, 
+            package_id,
+            title,
+            title_url,
+            content,
+            content_format,
+            entry_date,
+            draft_p,
+            deleted_p
+        ) values (
+            v_entry_id, 
+            pinds_blog_entry.new.package_id,
+            pinds_blog_entry.new.title,
+            pinds_blog_entry.new.title_url,
+            pinds_blog_entry.new.content,
+            pinds_blog_entry.new.content_format,
+            pinds_blog_entry.new.entry_date,
+            pinds_blog_entry.new.draft_p,
+            'f'
+        );
+
+        return v_entry_id;
+
+    end new;
+
+    procedure del (
+        entry_id in pinds_blog_entries.entry_id%TYPE
+    )
+    is
+    begin
+        -- delete comments associated with this entry
+		for comment in (select comment_id from general_comments 
+					      where object_id = pinds_blog_entry.del.entry_id) loop
+			acs_message.del(comment.comment_id);
+		end loop;
+
+        delete
+        from pinds_blog_entries
+        where entry_id = pinds_blog_entry.del.entry_id;
+
+        acs_object.del(pinds_blog_entry.del.entry_id);
+
+    end del;
+
+    function title (
+        entry_id in pinds_blog_entries.entry_id%TYPE
+    ) return pinds_blog_entries.title%TYPE
+    is
+        v_title pinds_blog_entries.title%TYPE;
+    begin
+
+        select title
+        into v_title
+        from pinds_blog_entries
+        where entry_id = pinds_blog_entry.title.entry_id;
+
+        return v_title;
+
+    exception when no_data_found then
+        return '';
+
+    end title;
+
+end pinds_blog_entry;
+/
+show errors
