Index: openacs-4/packages/calendar/calendar.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/calendar.info,v
diff -u -N -r1.47 -r1.47.2.1
--- openacs-4/packages/calendar/calendar.info 4 Jul 2018 17:31:27 -0000 1.47
+++ openacs-4/packages/calendar/calendar.info 30 Jul 2020 14:23:45 -0000 1.47.2.1
@@ -7,7 +7,7 @@
f
f
-
+
Dirk Gomez
Personal and shared event calendars.
2017-08-06
@@ -17,7 +17,7 @@
2
#calendar.Calendar#
-
+
@@ -32,6 +32,7 @@
+
Index: openacs-4/packages/calendar/tcl/apm-callback-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/tcl/apm-callback-procs.tcl,v
diff -u -N -r1.3 -r1.3.2.1
--- openacs-4/packages/calendar/tcl/apm-callback-procs.tcl 7 Aug 2017 23:48:05 -0000 1.3
+++ openacs-4/packages/calendar/tcl/apm-callback-procs.tcl 30 Jul 2020 14:23:45 -0000 1.3.2.1
@@ -34,9 +34,37 @@
}
}
+ad_proc -public calendar::apm::before_uninstantiate {
+ -package_id:required
+} {
+ Cleanup calendars from this package instance upon uninstantiation.
+} {
+ # get calendar ids
+ set calendar_list [db_list get_calendar_ids {
+ SELECT calendar_id FROM calendars
+ WHERE package_id = :package_id
+ }]
+ # delete calendars
+ foreach calendar_id $calendar_list {
+ # delete all calendar items
+ db_foreach get_calendar_items {
+ SELECT cal_item_id FROM cal_items
+ WHERE on_which_calendar = :calendar_id
+ } {
+ calendar::item::delete -cal_item_id $cal_item_id
+ }
+ # delete item types
+ db_foreach get_item_types {
+ SELECT item_type_id FROM cal_item_types
+ WHERE calendar_id= :calendar_id
+ } {
+ calendar::item_type_delete -calendar_id $calendar_id -item_type_id $item_type_id
+ }
+ # delete calendar
+ calendar::delete -calendar_id $calendar_id
+ }
+}
-
-
# Local variables:
# mode: tcl
# tcl-indent-level: 4