def evolve(context): root = getRootFolder(context) for site in findObjectsMatching(root, ISite.providedBy): setSite(site) sm = site.getSiteManager() cp = sm.get('controlpanel', None) if cp is None: continue data = cp.get('system.activity', None) if data is None: continue catalog = data['catalog'] keys = [] for key, val in data.records.items(): if str(val.__class__) in ( "<class 'zojax.content.draft.activity.DraftPublishedActivityRecord'>", "<class 'zojax.content.draft.activity.DraftStatusActivityRecord'>"): keys.append(key) for key in keys: del data.records[key] catalog.clear() catalog.updateIndexes() setSite(None)
def evolve(context): root = getRootFolder(context) for site in findObjectsMatching(root, ISite.providedBy): setSite(site) def matchIndex(ob): return ob.__class__ in (NormalizationWrapper, ) try: for rt in (site.getSiteManager(), site): for index in findObjectsMatching(rt, matchIndex): del index.__parent__[index.__name__] finally: setSite(None)
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 evolve(context): root = getRootFolder(context) for site in findObjectsProviding(root, ISite): sm = site.getSiteManager() pau = component.queryUtility(IAuthentication, context = sm) if pau is not None and IPluggableAuthentication.providedBy(pau): if OLD_CRED_NAME in pau: plugins = list(pau.credentialsPlugins) if OLD_CRED_NAME in plugins: plugins.remove(OLD_CRED_NAME) pau.credentialsPlugins = tuple(plugins) del pau[OLD_CRED_NAME] setSite(site) factory = component.getUtility(ICredentialsPluginFactory, 'default.credentials') factory.install() factory.activate() setSite(None)