Index: openacs-4/packages/lars-blogger/lars-blogger.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/lars-blogger.info,v
diff -u -r1.25 -r1.26
--- openacs-4/packages/lars-blogger/lars-blogger.info	10 Nov 2003 16:36:31 -0000	1.25
+++ openacs-4/packages/lars-blogger/lars-blogger.info	8 Dec 2003 05:15:04 -0000	1.26
@@ -24,6 +24,7 @@
 
         <callbacks>
             <callback type="after-instantiate"  proc="lars_blogger::install::package_instantiate"/>
+            <callback type="before-uninstantiate"  proc="lars_blogger::install::package_uninstantiate"/>
         </callbacks>
         <parameters>
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="DisplayUsersP"  default="0" description="Should we display a list of bloggers on the index page."/>
Index: openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-drop.sql,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-drop.sql	17 Oct 2003 00:39:22 -0000	1.5
+++ openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-drop.sql	8 Dec 2003 05:15:04 -0000	1.6
@@ -22,12 +22,6 @@
 begin
 
     for blog_entry in (select entry_id from pinds_blog_entries) loop
-		-- delete comments (which are acs_message's)
-		for comment in (select comment_id from general_comments 
-							   where object_id = blog_entry.entry_id) loop
-			acs_message.del(comment.comment_id);
-		end loop;
-
         pinds_blog_entry.del(blog_entry.entry_id);
     end loop;
 
Index: openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-create.sql,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-create.sql	31 Oct 2003 14:12:55 -0000	1.5
+++ openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-create.sql	8 Dec 2003 05:15:04 -0000	1.6
@@ -96,6 +96,11 @@
     )
     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
@@ -190,6 +195,11 @@
     )
     is
     begin
+        -- delete rss_gen_subscrs which relate to this channel
+		for subscr in (select subscr_id from rss_gen_subscrs
+		      where summary_context_id = weblogger_channel.del.channel_id) loop
+			rss_gen_subscr.del(subscr.subscr_id);
+		end loop;
 
         delete
         from weblogger_channels
Index: openacs-4/packages/lars-blogger/tcl/install-procs-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/install-procs-oracle.xql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/tcl/install-procs-oracle.xql	8 Dec 2003 05:15:04 -0000	1.1
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+
+<queryset>
+    <rdbms><type>oracle</type><version>8.1.6</version></rdbms>
+
+    <fullquery name="lars_blogger::install::package_uninstantiate.clear_content">
+        <querytext>
+
+        begin
+            -- delete weblogger_channels
+            for channel in (select channel_id from weblogger_channels
+                              where package_id = :package_id) loop
+                weblogger_channel.del(channel.channel_id);
+            end loop;
+
+            -- delete weblog entries
+            for entry in (select entry_id from pinds_blog_entries
+                            where package_id = :package_id) loop
+                pinds_blog_entry.del(entry.entry_id);
+            end loop;
+
+            return 0;
+        end;
+
+        </querytext>
+    </fullquery>
+
+</queryset>
Index: openacs-4/packages/lars-blogger/tcl/install-procs-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/install-procs-postgresql.xql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/tcl/install-procs-postgresql.xql	8 Dec 2003 05:15:04 -0000	1.1
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+
+<queryset>
+    <rdbms><type>postgresql</type><version>7.1</version></rdbms>
+
+    <fullquery name="lars_blogger::install::package_uninstantiate.clear_content">
+        <querytext>
+
+        declare
+            channel_rec         record;
+            entry_rec           record;
+        begin
+            -- delete weblogger_channels
+            for channel_rec in select channel_id from weblogger_channels
+                                 where package_id = :package_id loop
+                perform weblogger_channel__delete(channel_rec.channel_id);
+            end loop;
+
+            -- delete weblog entries
+            for entry_rec in select entry_id from pinds_blog_entries
+                                where package_id = :package_id loop
+                perform pinds_blog_entry__delete(entry_rec.entry_id);
+            end loop;
+
+            return 0;
+        end;
+
+        </querytext>
+    </fullquery>
+
+</queryset>
Index: openacs-4/packages/lars-blogger/tcl/install-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/install-procs.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/lars-blogger/tcl/install-procs.tcl	1 Oct 2003 13:00:00 -0000	1.2
+++ openacs-4/packages/lars-blogger/tcl/install-procs.tcl	8 Dec 2003 05:15:04 -0000	1.3
@@ -20,3 +20,15 @@
 	              -party_id $party_id \
 	              -privilege "general_comments_create"
 }
+
+ad_proc -private lars_blogger::install::package_uninstantiate {
+    {-package_id:required}
+} {
+    Package un-instantiation callback proc. Permanently delete all the 
+    content associated with a blog. Deletes all entries, comments and rss 
+    feeds.
+
+    @author Vinod Kurup
+} {
+    db_exec_plsql clear_content {}
+}