예제 #1
0
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)
예제 #2
0
    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)
예제 #3
0
def draftAdded(object, event):
    if getUtility(IIntIds).queryId(removeAllProxies(object.content)) is None:
        addIntIdSubscriber(object.content, event)