CatalogAware does not update things when properties are changed. This can be solved by intercepting manage_editProperties and manage_changeProperties, but I'm not sure if this is practical in a ZClass.
To ensure your instance gets reindexed when the properties change, you need to have the method that processes the property change form call the reindexing method after you commit the changes, just like you do when adding the instance.
That's right. I just need to <dtml-call reindex_object()>, which is not documented in Zope Book.
Why couldn't CatalogAware do this? If nobody has a good reason, I might push forth a patch to CatalogAware to implement this.
A simple case for the present flexibility is that you don't need to reindex for every property change, just the ones that are actually indexed.
Fine with me. Thanks to all who gave advice! -- Milos Prudek