[Zope] Calendar ZSIG?

Phillip J. Eby pje@telecommunity.com
Fri, 10 Sep 1999 08:15:28 -0500


At 08:00 PM 9/9/99 -0400, Michel Pelletier wrote:
> 
>Oh Oh!  Don't forget transparent ZCatalog integration.  I think there's
>plenty of interest, the question is resources.  If your willing to
>marshal up some time to list requirements, I'll jump in on the code
>phase.
>

I can go ahead and tell you what will greatly ease Catalog-Calendar
integration, as well as any number of other specialized cataloging projects...

Rework ZCatalog so that you can add arbitrary Index objects by containing
them immediately inside the catalog rather than by having to use a
management tab that only allows a hardcoded set of index types.  Make
ZIndex objects that, when added to a Catalog's folder-like area,
automatically insert themselves into the catalog's index mapping
structures.  In this way, adding new types of indexing (such as a
MultiValue index, or a DateRange index) is possible simply by creating a
new ZIndex subclass.  And indexes can then have their own management
screens for options like requiring uniqueness, or allowing
case-insensitivity and what-have-you.  In this way, if we create a
DateRange or TimeSpan index that puts each date into a BTree in order to
better isolate objects, and does searches using the date algorithms I
previously described, then that logic can be encapsulated where it belongs:
in the search/retrieval mechanism, rather than in the event objects and
calendar displays.

Of course, this approach would also enable easy replacement of the standard
text indexes and other index types with a wide variety of alternative
indexes developed by interested parties.  I'm not clear at this point
whether it's possible for such an animal to be backward-compatible,
although it seems it might be, since one mainly needs to make ZIndex
objects whose after-add/before-delete methods check to see if it's been put
into something that smells like a ZCatalog, and then add/remove itself from
the ZCatalog's indexing parts accordingly.  The tricky bit would be keeping
people from removing the indexes accidentally via the index management
interface, while still allowing removal of ones that were added that way.
Perhaps the upgraded ZCatalog class could convert instances of itself to
the new format where possible, and drop the index management screen
altogether.  Or, perhaps it's just the index management interface that
needs changing, to allow any class that smells like a ZIndex to be added.