Example #1
0
 def rebuild_catalog(self):
     context = self.context
     upgrades.upgrade_plone(context)
     catalog = getToolByName(self.context, 'portal_catalog')
     upgrades.log('Recataloging items')
     brains = catalog.search({})
     lb = len(brains)
     for i, itm in enumerate(brains):
         try:
             obj = context.unrestrictedTraverse(itm.getPath())
             uid = '/'.join(obj.getPhysicalPath())
             if not uid in catalog._catalog.uids:
                 catalog.catalog_object(obj)
                 catalog.indexObject(obj)
             # let the objects be wrapped now by plone.indexer
             if IIndexableObject.providedBy(obj):
                 interface.noLongerProvides(obj, IIndexableObject)
                 catalog.reindexObject(obj, [
                     "allowedRolesAndUsers", "object_provides", "sortable_title",
                     "getObjPositionInParent", "getObjSize", "is_folderish",
                     "syndication_enabled", "is_default_page", "getIcon"]
                 )
         except Exception, e:
             upgrades.log('pb cataloging %s; %s' % (itm.getPath(), e))
         if i % 10 == 0:
             upgrades.log('Recatalog: %s on %s (%s %s)' % (
                 i, lb, (i / (1.0 * lb) * 100), '%'))
             upgrades.commit(context)
Example #2
0
 def upgrade_plone(self):
     """Run the plone_migration tool upgrade loop"""
     pm = getToolByName(self.context, 'portal_migration')
     if pm.needUpgrading():
         upgrades.log(
             upgrades.upgrade_plone(self.context)
         )
         upgrades.commit(self.context)
     if pm.needUpgrading():
         raise Exception("Plone did not upgrade")
     else:
         upgrades.commit(self.context)