[Zope-dev] manage_workspace changes
Dieter Maurer
dieter at handshake.de
Sun Oct 19 04:21:00 EDT 2003
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
More information about the Zope-Dev
mailing list