[Zope] CatalogPathAwareness and manage_beforeDelete

Dieter Maurer dieter@handshake.de
Wed, 18 Dec 2002 23:59:20 +0100


Bakhtiar A Hamid writes:
 > hello all
 > i have a product that subclass CatalogPathAwareness and SimpleItem all works 
 > ok.  i,e an object instance will be added and deleted from the catalog
 > 
 > however, if i override manage_beforeDelete, the catalog is not cleared when i 
 > delete the object instance
 > 
 > is that natural?
Yes, as cataloging uses the hooks provided by
"manage_afterAdd" and "manage_beforeDelete".

 > do i have to supply my own uncatalog_object ?
No.

But you probably should call the overridden "manage_beforeDelete".

 > with this snippet, it still doesnt work.  i guess i don't get what uid for 
 > uncatalog_object is ...
 > 
 > here's the snippet
 > 
 >         def manage_beforeDelete(self, item, container):
 >                 """method for delete /cut/paste/rename"""
 >                 img_dir = getattr(self.aq_parent, 'images')
 >                 img_dir.manage_delObjects([item.getId()+'_image'])
 >                 self.uncatalog_object(item.absolute_url(1))
Try:
           def manage_beforeDelete(self, item, container):
                   """method for delete /cut/paste/rename"""
		   <YourClass>.inheritedAttribute('manage_beforeDelete')(self,item,container)
                   img_dir = getattr(self.aq_parent, 'images')
                   img_dir.manage_delObjects([item.getId()+'_image'])

You must (of course) replace "<YourClass>" with the name of your class.


Dieter