def objectMoved(ev): if ev.newParent is None or ev.oldParent is None: # it's an IObjectRemovedEvent or IObjectAddedEvent return if ev.newParent is ev.oldParent: # it's a renaming operation dispatchToSublocations(ev.object, ev) obj = filterTemporaryItems(ev.object) indexer = getQueue() if obj is not None: indexer = getQueue() indexer.index(obj)
def unindexObject(self, object): if not CATALOG_OPTIMIZATION_DISABLED: obj = filterTemporaryItems(object, checkId=False) if obj is not None: indexer = getQueue() indexer.unindex(obj) else: self._unindexObject(object)
def begin(self): self.should_log = IDuringUpgrade.providedBy(getRequest()) if not self.should_log: return indexing_queue_length = getQueue().length() self.logger = ProgressLogger('Processing indexing queue', indexing_queue_length)
def begin(self): self.should_log = IDuringUpgrade.providedBy(getRequest()) if not self.should_log: return indexing_queue_length = getQueue().length() self.logger = ProgressLogger( 'Processing indexing queue', indexing_queue_length)
def objectModified(ev): obj = filterTemporaryItems(ev.object) if obj is None: return indexer = getQueue() if getattr(ev, 'descriptions', None): # not used by archetypes/plone atm # build the list of to be updated attributes attrs = [] for desc in ev.descriptions: if isinstance(desc, Attributes): attrs.extend(desc.attributes) indexer.reindex(obj, attrs) if 'allow' in attrs: # dispatch to sublocations on security changes dispatchToSublocations(ev.object, ev) else: # with no descriptions (of changed attributes) just reindex all indexer.reindex(obj)
def reindexObject(self, object, idxs=[], update_metadata=1, uid=None): # `CMFCatalogAware.reindexObject` also updates the modification date # of the object for the "reindex all" case. unfortunately, some other # packages like `CMFEditions` check that date to see if the object was # modified during the request, which fails when it's only set on commit if not CATALOG_OPTIMIZATION_DISABLED: if idxs in (None, []) and \ hasattr(aq_base(object), 'notifyModified'): object.notifyModified() obj = filterTemporaryItems(object) if obj is not None: indexer = getQueue() indexer.reindex(obj, idxs, update_metadata=update_metadata) else: self._reindexObject(object, idxs=idxs, update_metadata=update_metadata, uid=uid)
def setUp(self): self.me = getQueue() self.failUnless(IIndexQueue.providedBy(self.me), 'non-queued indexer found')
def objectTransitioned(ev): obj = filterTemporaryItems(ev.object) if obj is not None: indexer = getQueue() indexer.reindex(obj)
def objectRemoved(ev): obj = filterTemporaryItems(ev.object, checkId=False) if obj is not None: indexer = getQueue() indexer.unindex(obj)
def objectAdded(ev): obj = filterTemporaryItems(ev.object) if obj is not None: indexer = getQueue() indexer.index(obj)
def setUp(self): self.me = getQueue() self.assertTrue(IIndexQueue.providedBy(self.me), 'non-queued indexer found')