Forum .LRN Q&A: Re: Development on Calendar
Andrew Grumet has completed some substantial code cleanup which will be put into cvs shortly after release of .LRN 2.2 (was too much to risk putting into .LRN 2.2 so soon before release). He sent a tarball to Don (who is busy helping get .LRN 2.2 out right now). I think Sloan is running the improvements in production.
Calendar is on the .LRN cleanup list, it is on the list right after forums.
I moved the document to the wiki if you want to add or edit it.
do you know, did Andrew incorporate my changes, esp. these
for ical import/export? i sent my code nearly a year ago to andrew, but i got the impression he lost interest. However, in oacs 5.3, with xotcl in the core, it is certainly worth a consideration. we have this version in production since september. The code is on http://media.wu-wien.ac.at/download/calendar+ical-0.2.tar.gz
Here is a list of the most important CHANGES in my version.
* Calendars can be exported into and imported from the ical format;
this means that one can import an calendar from e.g. mozilla
calendar into openacs and export calendars from openacs into
mozilla calendar. it is also possible to share calendars via
openacs via mozilla calendar and webdav, such that changes to a
calendar within mozilla calendar are immediately propagated to
openacs (without performing explicit export and import commands).
As a byproduct this facility can also be used to export calendar
items from one openacs installation and import it into another one.
* Webdav support for ical (can be used very nicely from mozilla
(thunderbird/firefox/sunbird, up to a certain degree from Apples iCal)
* Added upload and download items to the calendar admin page
* An activity is now deleted, whenever the last cal-item is deleted.
otherwise, there would be a problem, if activities are created
repeatately via ::calendar::item::new.
The changes are in calendar::item::delete and
calendar::item::delete_recurrence in cal-item-procs.tcl
The approach is rather crude, it would be certainly more elegant to
use a "delete cascade" from the fk in acs_events to acs_activities.
This addresses as well the message in
* A community can have now multiple calendars; these multiple
calendars are presented on the portal pages. Previously different
calendar items where shown, when calendars were viewed from a
portal page or from the mounted package. Now, calendar items of all
(appropriate) calendars of the package are presented from the
portal page and on from the mounted package in an community
* Added table for associating arbitry (external) Unique IDs and other ical data
to activities. To be less intrusive, i added a table named
most probably, the field UID should be moved into acs_activities
* update sql script + indices for signifcant faster view operations
(our production system has over 19000 calendars).
* fix for double fetching of items: previously, there
was an on_click action on table cells (e.g. in the
These table cells contain links. When someone clicks
on a day in the mini-calendar, both the action handler and
the link were activated, causing a double fetch. The same
problem occured in the mini-calendar and on the month
view of the calendar.
* dotlrn.css contained for all portal elements a vertical
center spec. At least for the calendar, this leads to a
bad display. i have removed this entry.
* a few performance improvements
We have been using a modified calendar version (oacs-5-1 based) mixed with Gustaf calendar+ical code for a while in a production environment and it works well. Of course we have much less calendars than 19000 but sounds good hear Gustaf telling about his experience.
Some dotlrn ical screenshots are here if people want to see how it works. Patches with modifications we did are available too (modifications require xotcl-core package)