Doing some on-site consulting on an old Zope CMS that has been developed by many different developers over many years. It's pretty good and has lots of powerful features but over the years certain things have been allowed to slip. One problem was that you couldn't click the "Properties" tab. The reason was that it was trying to fetch properties that didn't exist anymore. What had happened was that the class attribute
_properties (which is used by the "Properties" tab in the ZMI) had been stored as a persistent attribute. Here's how to solve that:
def manage_fixPropertiesProblem(self): """ fix so _properties becomes a class attribute instead """ if '_properties' in self.__dict__.keys(): del self._properties return "Awesome!"