Yuppie wrote at 2003-10-15 14:24 +0200:
As also mentioned here <http://mail.zope.org/pipermail/cmf-checkins/2003-October/003702.html> some CMF tool tabs are broken if used with a current Zope-2_6-branch checkout.
I didn't spend much time to find out what's really going on here, so I might be missing something.
But it looks like the fix for <http://collector.zope.org/Zope/1058> (regarding an PropertySheets issue) causes this bug. Can anybody confirm this?
I fear I can confirm this. "App.Management.Tabs.manage_workspace" apparently had the intention to return "getattr(self,method)(self,REQUEST)" in the case that "method" did not contain a "/", and to redirect otherwise. Due to a bug in the the condition, however, it redirected for all methods unless they started with a "/" (reported as a bug in the Zope mailing list). I fixed the condition (patch to collector 1058). Unfortunately, returning "getattr(self,method)(self,REQUEST)" requires the method to be DTML like and breaks if this is not the case. I now think it is best to *always" use the redirect and never return the method. My code now looks like: # DM: fixing the wrong condition now reveals a bug in WingDBG # always redirect (as done earlier with the exception of # absolute URLs) if 1 or m.find('/') >= 0: # DM: let absolute URLs work (as generated by # "OFS.PropertySheets.PropertySheets.manage_options") prefix= m.startswith('/') and REQUEST['BASE0'] or REQUEST['URL1'] raise 'Redirect', ( "%s/%s" % (prefix, m)) return getattr(self, m)(self, REQUEST) Dieter