def resetSubtypes(self, batch=1000): """ walk all catalog entries and reset sub-type markings """ log = self.mklog() log('resetting blob sub-type markers...\n') real = timer() # real time lap = timer() # real lap time (for intermediate commits) processed = 0 def checkPoint(): log('intermediate commit ({0} items processed, ' 'last batch in {1})...\n'.format(processed, lap.next())) commit() cpi = checkpointIterator(checkPoint, batch) context = aq_inner(self.context) catalog = getToolByName(context, 'portal_catalog') for brain in catalog(object_provides=IATBlob.__identifier__): obj = brain.getObject() subtype = brain.portal_type markAs(obj, subtype) obj.reindexObject(idxs=['object_provides']) log('set blob sub-type for {0} to "{1}"\n'.format(obj, subtype)) processed += 1 cpi.next() commit() msg = 'processed {0} items in {1}.'.format(processed, real.next()) log(msg) getLogger('plone.app.blob.maintenance').info(msg)
def resetSubtypes(self, batch=1000): """ walk all catalog entries and reset sub-type markings """ log = self.mklog() log('resetting blob sub-type markers...\n') real = timer() # real time lap = timer() # real lap time (for intermediate commits) processed = 0 def checkPoint(): log('intermediate commit ({0} items processed, ' 'last batch in {1})...\n'.format(processed, next(lap))) commit() cpi = checkpointIterator(checkPoint, batch) context = aq_inner(self.context) catalog = getToolByName(context, 'portal_catalog') for brain in catalog(object_provides=IATBlob.__identifier__): obj = brain.getObject() subtype = brain.portal_type markAs(obj, subtype) obj.reindexObject(idxs=['object_provides']) log('set blob sub-type for {0} to "{1}"\n'.format(obj, subtype)) processed += 1 next(cpi) commit() msg = 'processed {0} items in {1}.'.format(processed, next(real)) log(msg) getLogger('plone.app.blob.maintenance').info(msg)
def createDummy(self, klass, id='dummy', subtype=None): portal = self.portal dummy = klass(oid=id) markAs(dummy, subtype) # put dummy in context of portal dummy = dummy.__of__(portal) portal.dummy = dummy dummy.initializeArchetype() return dummy
def addATBlob(container, id, subtype='Blob', **kwargs): """ extended at-constructor copied from ClassGen.py """ obj = ATBlob(id) if subtype is not None: markAs(obj, subtype) # mark with interfaces needed for subtype if not hasCMF22: notify(ObjectCreatedEvent(obj)) container._setObject(id, obj, suppress_events=hasCMF22) obj = container._getOb(id) if hasCMF22: obj.manage_afterAdd(obj, container) obj.initializeArchetype(**kwargs) if not hasCMF22: notify(ObjectModifiedEvent(obj)) return obj.getId()