
matth at netsight
Dec 18, 2008, 1:54 PM
Views: 602
Permalink
|
|
CMFCatalogAware.dispatchToOpaqueItems madness
|
|
I really don't understand this code, so maybe I'm missing something here, but anyone know wtf the opaqueItem code does in CMFCore.CMFCatalogAware?! Why does the opaqueItems method iterate through *every* attribute in the root of the site causing all objects (including, at least in plone) all sub-objects of folders to be woken up too): for name in self_base.__dict__.keys(): obj = getattr(self, name) if ICallableOpaqueItem.providedBy(obj) \ or z2ICallableOpaqueItem.isImplementedBy(obj): items.append((obj.getId(), obj)) If it is looking for opaque items (I still don't know what these really are) then why does it look in content objects too?! How about the changes below? objectids = dict([(x,1) for x in self.objectIds()]) for name in self_base.__dict__.keys(): if name not in objectids: obj = getattr(self, name) if ICallableOpaqueItem.providedBy(obj) \ or z2ICallableOpaqueItem.isImplementedBy(obj): items.append((obj.getId(), obj)) (that was probably all wrapped to hell) Basically, I've got a production site which loads up several tens of thousands of objects from the ZODB just to display the front page. Madness. -Matt -- Matt Hamilton matth[at]netsight.co.uk Netsight Internet Solutions, Ltd. Understand. Develop. Deliver http://www.netsight.co.uk +44 (0)117 9090901 Web Design | Zope/Plone Development & Consulting | Co-location | Hosting _______________________________________________ Zope-CMF maillist - Zope-CMF[at]lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests
|