Logo

Technical Overview

Last modified: 03/13/2006 05:39 PM
CPS Shared Calendar Technical overview

CPSSharedCalendar is a next generation Calendaring application for CPS3. Its core technologies can however also be used outside of CPS, or even Zope. It is built for extensibility and forward compatibility, utilizing technologies of Zope 3. It does this by using Five.

CPSSharedCalendar consists of three modules, CalCore, CalZope and CPSSharedCalendar. The idea behind this split is to separate the core functionality from the user interface to provide a full-featured core on which it is easy to build user interfaces.

  • CalCore is a pure python package (calcore) that implements core calendaring functionality. It has two dependencies outside of core Python:

    • the iCalendar Python library to support iCalendar compatible clients like iCal, Mozilla Sunbird and KOrganizer.
    • A minimal (and easily removable) dependency on Zope 3's interface and schema support
    CalCore can therefore be used outside of outside of Zope, while fully supporting Zope as well. See also this usecase to get an impression of the API.
  • CalZope integrates CalCore with Zope 2. It consists mainly of Zope 2 wrappers for the calendar objects, and a browser module that provides the user interface. CalZope is based on Five and thus employs Zope 3 technology. A Zope 3 port of the CalZope functionality is planned.

  • CPSSharedCalendar lastly provides the CPS integration for the calendaring application. It makes use of CMFonFive, an integration layer component between CMF and Five.

Architecture

CPSSharedCalendar uses a flexible object architecture, with a high degree of separation between different concepts. The result is support for creating storages that interfaces with a third-party groupware server such as Kolab or OpenGroupWare, so that you can use CPSSharedCalendar as a web user interface towards other groupware applications.

There is also a separation of the concepts of a calendar and an attendee, so that you can have a calendar that shows the events for several attendees, or multiple calendars showing the events for one attendee. Those allows for creation of group calendars and event overviews, while still separating the attendees. It also allows for the creation of several types of attendees, typically users, groups and resources.

More information about the architecture

This site is powered by CPS, which includes CPSSkins. CPS and its design are Copyright © 2002-2006 Nuxeo SAS.
CPSSkins is Copyright © 2003-2006 Jean-Marc Orliaguet.
powered_by_nuxeo.png