[Zope] Recataloging object instances
   
    Jean Jordaan
     
    jean@upfrontsystems.co.za
       
    Tue, 13 Nov 2001 11:45:00 +0200
    
    
  
Hi all
In the 'handlemail' method that is called for incoming mails, 
I have roughly the following code::
 apply( mail_folder.manage_addProduct['ZMailIn'].manage_addZMailMessage
      , new_mail_args
      , {}
      )
 zmail.manage_addProperty('status', 'unassigned', 'lines')
ZMailIn subclasses CatalogAware, so the new instance gets cataloged.
However, the 'status' property that I add after creation does *not*
get cataloged. (It does get cataloged when I manually update the 
catalog.)
In order to get the 'status' property cataloged, I added the following
two lines::
 ZMailInCatalog.uncatalog_object('/' + zmail.absolute_url(1))
 ZMailInCatalog.catalog_object(zmail, '/' + zmail.absolute_url(1))
My question is this: why do I have to add the leading slash, here?
'manage_addZMailMessage' catalogs the instance as '/mail_folder/zmailNNN', 
and 'absolute_url(1)' returns 'mail_folder/zmailNNN' (without the leading 
slash). 
Another question: shouldn't the added property automatically get
cataloged, without 'uncatalog_object'/'catalog_object' being called 
explicitly?
I'm on Zope 2.3.2 on Linux .. 
Regards, 
Jean Jordaan