[Zope] Tree tag and namespaces

Lars Heber Lars.Heber@t-systems.de
Tue, 02 Oct 2001 15:56:36 +0200


On 03/02/2001, I got an answer to my question regarding dtml-tree - see:

http://zope.nipltd.com/public/lists/zope-archive.nsf/47ba74c812dbc5dd8025687f0024bb5f/4d8526e42ef682e080256a0300730c60?OpenDocument

Now, that I've upgraded from 2.3.0 to 2.4.1,
<dtml-tree ... branches_expr="yourDTMLmethod(_vars.None,_vars)">
      ....
</dtml-tree>
doesn't work anymore!
The problem is the yourDTMLmethod(_vars.None,_vars), I get the
following:
Error Type:  SyntaxError
Error Value: Line 2: "_vars" is an invalid variable name because it
starts with "_"
traceback:
[...]
File
/usr/local/Zope-2.4.1-linux2-x86/lib/python/DocumentTemplate/DT_String.py,
line 546, in __call__
    (Object: baum)
-> this is the name of the method which creates the tree
  File
/usr/local/Zope-2.4.1-linux2-x86/lib/python/TreeDisplay/TreeTag.py, line
159, in render
    (Object: a tree tag)
  File
/usr/local/Zope-2.4.1-linux2-x86/lib/python/TreeDisplay/TreeTag.py, line
269, in tpRender
    (Object: LockableItem)
  File
/usr/local/Zope-2.4.1-linux2-x86/lib/python/TreeDisplay/TreeTag.py, line
325, in tpRenderTABLE
    (Object: LockableItem)
  File
/usr/local/Zope-2.4.1-linux2-x86/lib/python/DocumentTemplate/DT_Util.py,
line 209, in eval
    (Object: search(_vars.None,_vars))
-> search is the method which returns the nodes to display
  File
/usr/local/Zope-2.4.1-linux2-x86/lib/python/RestrictedPython/Eval.py,
line 143, in prepRestrictedCode
    (Object: search(_vars.None,_vars))

<dtml-tree single="1" skip_unauthorized="1"
branches_expr="search(_vars.None,_vars)">
...
</dtml-tree>

Hey, what's going on here?

I've absolutely NO idea where to start!
Would be nice if Dieter could give me a response; but of course any
suggestions are welcome!

BTW: Second strange error (independent from the above one!):
[...]
 File
/usr/local/Zope-2.4.1-linux2-x86/lib/python/DocumentTemplate/DT_String.py,
line 546, in __call__
    (Object: 984400993)
  File
/usr/local/Zope-2.4.1-linux2-x86/lib/python/DocumentTemplate/DT_Util.py,
line 231, in eval
    (Object: pub.restrictedTraverse(_.string.join([bilderpfad,
firmenlogoKlein], '')))
    (Info: bilderpfad)
  File <string>, line 2, in f
    (Object: guarded_getattr)
  File /usr/local/Zope-2.4.1-linux2-x86/lib/python/OFS/Traversable.py,
line 233, in restrictedTraverse
    (Object: LockableItem)
  File /usr/local/Zope-2.4.1-linux2-x86/lib/python/OFS/Traversable.py,
line 193, in unrestrictedTraverse
    (Object: ApplicationDefaultPermissions)
NameError: global name 'has' is not defined

I never declared such a var or used it.

Both (the first AND the second) examples worked perfectly under 2.3.0.
Has something changed in 2.4.1 I have to think of?

TIA Lars