def _purgeCustomMenu(self, context): """Remove the interface and annotation from an object """ if ICustomMenuEnabled.providedBy(context): annotation = ICustomMenuFactoriesAssignment(context) annotation.remove() noLongerProvides(context, ICustomMenuEnabled) context.reindexObject(idxs=["object_provides"])
def cleanMenuCustomizations(portal): """Remove all customization from the Plone site""" catalog = portal.portal_catalog results = catalog(object_provides=ICustomMenuEnabled.__identifier__) for x in results: obj = x.getObject() interface.noLongerProvides(obj, ICustomMenuEnabled) annotations = IAnnotations(obj) del annotations[ANN_CUSTOMMENU_KEY] print 'Removing customization of the "Add new..." menu at %s' % x.getPath() obj.reindexObject(['object_provides']) # Also the Plone site can be customized... check manually as it isn't in the catalog if ICustomMenuEnabled.providedBy(portal): interface.noLongerProvides(portal, ICustomMenuEnabled) annotations = IAnnotations(portal) del annotations[ANN_CUSTOMMENU_KEY] print 'Removing customization of the "Add new..." menu in the Plone site'