[Zope-dev] Zope 2.1.6: ZCatalog's Reindex unintuitive?

Kevin Dangoor kid@kendermedia.com
Thu, 1 Jun 2000 19:24:09 -0400


----- Original Message -----
From: "Dieter Maurer" <dieter@handshake.de>
To: <zope-dev@zope.org>
Sent: Thursday, June 01, 2000 5:31 AM
Subject: [Zope-dev] Zope 2.1.6: ZCatalog's Reindex unintuitive?


> I know, of cause, that a DMTL method could do this job.
> However, a general method "manage_catalogRefind" might be
> generally useful. It would remember the parameters for
> the last find operation and reapply the find.

I like the other solutions that exist/are coming into existence/are
proposed. They are:

1) CatalogAwareness for ZClasses. I like this one least, but it exists
today. Your custom ZClasses can just subclass CatalogAware and they will
automatically add themselves to the catalog when they are created and remove
themselves when they are deleted. Drawbacks: it's a pain to catalog them to
anything but something called "Catalog", and it only works for your custom
objects.

2) ZPatterns 0.4 (http://www.zope.org/Members/pje/Wikis/ZPatterns/HomePage):
This allows you to create objects that use DataSkins to determine how they
are stored. Additionally, you can set up methods that get called for adds
and deletes, so you can automatically catalog things however you would
like... plus, you can set that up on a folder by folder basis. Drawbacks:
not available yet, only works for your custom objects.

3) ObserverAndNotification Interface
(http://www.zope.org/Members/michel/Projects/Interfaces/ObserverAndNotificat
ion): Objects can be notified of events. This is a very generic interface
and should allow for all sorts of stuff. Drawbacks: I don't know if any work
has been done on implementation (work is still going on on the interfaces, I
think), and I don't know if you'll be able to create an observer that
automatically catalogs objects like DTML Methods even though the DTML Method
has no knowledge of the observer. I kind of get the feeling that you'll be
able to do such things...

I like all of these solutions, because they are automatic. Having a
catalogRefind implies that someone needs to actively do something to make
the catalog get updated...

Kevin