Jens Vagelpohl wrote:
Update of /cvs-repository/Products/CMFCore In directory cvs.zope.org:/tmp/cvs-serv23261/CMFCore
PortalContent.py Log Message:
- CMFTopic.Topic/CMFCore.PortalContent: Both these classes were using
the now-deprecated CMFCore.utils._getViewFor method, and strangely
enough the deprecation warning didn't show. Replaced with the
new method of getting the view.
Maybe the deprecation warning didn't show up because the method was never called?
The first implementation of Method Aliases did never call objects directly. __call__ was only used for backwards compatibility if no alias was specified.
Before the release of CMF 1.5.0 I changed the Method Aliases machinery and now in some situations the object is called directly, but forgot to update __call__ on the 1.5 branch. So this needs to be fixed, but in a different way.
=== Products/CMFCore/PortalContent.py 1.47 => 18.104.22.168 ===
--- Products/CMFCore/PortalContent.py:1.47 Thu Aug 12 11:07:39 2004
+++ Products/CMFCore/PortalContent.py Thu May 5 16:53:32 2005
@@ -95,22 +94,22 @@
return "%s %s" % (self.Title(), self.Description())
- Invokes the default view.
- view = _getViewFor(self)
- if getattr(aq_base(view), 'isDocTemp', 0):
- return view(self, self.REQUEST)
+ """ Invokes the default view.
+ view_id = self.getTypeInfo().queryMethodID('view')
+ view_obj = self.unrestrictedTraverse(view_id)
+ if getattr(aq_base(view_obj), 'isDocTemp', 0):
+ return view_obj(self, self.REQUEST)
- return view()
+ return view_obj()
There are two issues with this checkin:
1.) It implements different behavior than CMF HEAD
2.) It breaks backwards compatibility
I propose to use the code from HEAD and the _getViewFor code as fallback in case no '(Default)' alias is defined.
_______________________________________________ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf
See http://collector.zope.org/CMF for bug reports and feature requests