def evolve(context): """Setup catalog and indices for fulltext search.""" root = getRootFolder(context) for site in findObjectsProviding(root, IWorldCookerySite): sm = site.getSiteManager() if u'catalog' not in sm: setupCatalogAndIndices(ObjectEvent(site)) setSite(site) for recipe in findObjectsProviding(site, IRecipe): addIntIdSubscriber(recipe, ObjectEvent(recipe)) indexDocSubscriber(ObjectEvent(recipe)) setSite(None)
def test_addIntIdSubscriber(self): from zope.app.intid import addIntIdSubscriber from zope.app.container.contained import ObjectAddedEvent from zope.app.intid.interfaces import IIntIdAddedEvent parent_folder = self.root['folder1']['folder1_1'] folder = self.root['folder1']['folder1_1']['folder1_1_1'] setSite(self.folder1_1) events = [] ztapi.subscribe([IIntIdAddedEvent], None, events.append) # This should register the object in all utilities, not just the # nearest one. addIntIdSubscriber(folder, ObjectAddedEvent(parent_folder)) # Check that the folder got registered id = self.utility.getId(folder) id1 = self.utility1.getId(folder) self.assertEquals(len(events), 1) self.assertEquals(events[0].original_event.object, parent_folder) self.assertEquals(events[0].object, folder)
def draftAdded(object, event): if getUtility(IIntIds).queryId(removeAllProxies(object.content)) is None: addIntIdSubscriber(object.content, event)