[Zope] overriding manage_beforeDelete in a CatalogAware Product

Dennis Nichols nichols@tradingconnections.com
Thu, 16 Nov 2000 22:51:17 -0600


I think I need help in overriding the manage_beforeDelete method from 
CatalogAware. Just to be sure I'm asking the right question, here's the 
background:

I have a Product (in Python, not TTW) whose instances get cataloged in a 
separate ZCatalog called CommentCatalog. My product's class inherits from 
CatalogAware and other classes and can successfully index itself by calling 
thusly in the __init__ routine:

         self.manage_editCataloger('CommentCatalog')
         self.index_object()

Reindex also works just fine.

But I'm confused about how to get rid of the index entry upon delete. I 
think I need to set the catalog name and then call the inherited 
manage_beforeDelete routine. So I tried this:

     def manage_beforeDelete(self, item, container):
         "Be sure we unindex ourselves from our special catalog"
         self.manage_editCataloger('CommentCatalog')
         self.CatalogAware.manage_beforeDelete(item, container)

Not too surprisingly, the code throws an "AttributeError: CatalogAware" 
into the Stupid Log File and doesn't remove the object from CommentCatalog. 
Of course I don't understand what the correct incantation is, so I'm 
appealing for guidance.

Zope 2.2.2, Python 1.5.2, RH 6.2, etc

Thanks!

--
Dennis Nichols
nichols@tradingconnections.com