Index: openacs-4/packages/acs-events/www/doc/design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/www/doc/design.adp,v diff -u -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-events/www/doc/design.adp 25 Aug 2015 18:02:07 -0000 1.2.2.2 +++ openacs-4/packages/acs-events/www/doc/design.adp 9 Jun 2016 13:03:12 -0000 1.2.2.3 @@ -17,10 +17,10 @@

The ACS events service is primarily intended for use by writers of application packages and other service packages. The service allows developers to specify and manipulate relationships (possibly -recurring) between a set of intervals in time, an -activity, and an arbitrary number of parties. An +recurring) between a set of intervals in time, an +activity, and an arbitrary number of parties. An activity can be associated with an arbitrary number of ACS -objects.

+objects.

The package doesn't provide for any interpretation of events, leaving that up to the applications that use the service. In particular, the package assumes that permissioning, and the related @@ -36,23 +36,23 @@ meets the requirements for each of these areas in the following ways:

-Events: The service creates a new subtype of acs_object: +Events: The service creates a new subtype of acs_object: acs_event. It creates an auxiliary table for mapping events to parties. It provides an API for manipulating and querying events and their associated time interval sets, activities, recurrences, and parties.

-Time Intervals: The service creates tables for storing +Time Intervals: The service creates tables for storing time intervals and sets of time intervals. It provides an API for manipulating and querying time intervals and time interval sets.

-Activities: The service creates a new subtype of +Activities: The service creates a new subtype of acs_object: acs_activity. It creates an auxiliary table for mapping activities to objects. It provides an API for manipulating activities, their properties, and their associated objects.

-Recurrences: The service creates a table for storing +Recurrences: The service creates a table for storing information on how an event recurs, including how the event recurs and when it stops recurring. It provides an API for manipulating recurrence information and recurring events. This includes a @@ -123,15 +123,15 @@

The 4.0 ACS Events service doesn't enforce a particular policy to prevent problems, but it does provide mechanisms that a well-designed application can use. The keys are the -event_recurrence.insert_events procedure and the -partially_populated_events view.

+event_recurrence.insert_events procedure and the +partially_populated_events view.

-insert_events takes either an event_id or a recurrence_id +insert_events takes either an event_id or a recurrence_id and a cutoff date. It either uses the recurrence_id, or gets it from the event_id, to retrieve the information needed to generate the dates of the recurrences. When inserting a recurring event for the first time, the application will need to call -insert_events with a reasonable populate_until date. For +insert_events with a reasonable populate_until date. For calendar, for example, this could be sysdate + the lookahead limit.

It is the application's responsibility to determine if @@ -161,7 +161,7 @@

For the days_of_week column, the representation chosen, a space-delimited list of integers, has a number of advantages. First, it is easy and reasonably efficient to generate the set of -dates corresponding to the recurrences. insert_events takes +dates corresponding to the recurrences. insert_events takes each number in the list in turn and adds it to the date of the beginning of the week. Second, the Tcl and Oracle representations are equivalent and the translations to and from UI are