[Zope-dev] New method for ZCatalog: recatalog_object
Steve Alexander
steve@cat-box.net
Sun, 27 Aug 2000 14:35:34 +0100
ZCatalog would be easier to use if it had a recatalog_object method:
def recatalog_object(self, obj, uid):
"""Adds object to the catalog if not already present.
Removes old entry first, if already in present."""
self.uncatalog_object(uid)
self.catalog_object(obj, uid)
This, and a new method in Traverable.py would make cataloging in
ZPatterns SkinScript very easy indeed.
Add to Traversable.py:
getPathAsString__roles__=None # Public
def getPathAsString(self):
'''Returns the physical path as a string.
The returned string will always start with a slash.'''
return join(self.getPhysicalPath(), '/')
Otherwise, ZCatalog could be altered to accept lists of strings as uid
method attributes, and automatically convert them into slash-separated
strings.
Example SkinScript:
WHEN OBJECT ADDED, CHANGED CALL Catalog.recatalog_object(self,
self.getPathAsString())
WHEN OBJECT DELETED CALL
Catalog.uncatalog_object(self.getPathAsString())
Any comments?
--
Steve Alexander
Software Engineer
Cat-Box limited
http://www.cat-box.net