[Zope-Checkins] CVS: Zope2 - TreeTag.py:1.47
evan@serenade.digicool.com
evan@serenade.digicool.com
Wed, 16 May 2001 15:07:07 -0400
Update of /cvs-repository/Zope2/lib/python/TreeDisplay
In directory serenade:/home/evan/Zope/trunk/lib/python/TreeDisplay
Modified Files:
TreeTag.py
Log Message:
Add "prefix" attribute to dtml-in and dtml-tree tags.
--- Updated File TreeTag.py in package Zope2 --
--- TreeTag.py 2001/04/27 20:27:57 1.46
+++ TreeTag.py 2001/05/16 19:07:06 1.47
@@ -90,10 +90,11 @@
from DocumentTemplate.DT_Util import *
from DocumentTemplate.DT_String import String
-from string import join, split, rfind, find, translate
+from string import join, split, rfind, find, translate, replace
from urllib import quote, unquote
from zlib import compress, decompress
from binascii import b2a_base64, a2b_base64
+import re
tbl=join(map(chr, range(256)),'')
tplus=tbl[:ord('+')]+'-'+tbl[ord('+')+1:]
@@ -116,7 +117,7 @@
# closed_decoration=None,
# childless_decoration=None,
assume_children=1,
- urlparam=None)
+ urlparam=None, prefix=None)
has_key=args.has_key
if has_key('') or has_key('name') or has_key('expr'):
@@ -137,6 +138,11 @@
if not has_key('url'): args['url']='tpURL'
if not has_key('childless_decoration'):
args['childless_decoration']=''
+
+ prefix = args.get('prefix')
+ if prefix and not simple_name(prefix):
+ raise ParseError, _tm(
+ 'prefix is not a simple name', 'tree')
self.__name__ = name
self.section=section.blocks
@@ -251,6 +257,11 @@
treeData={'tree-root-url': root,
'tree-colspan': colspan,
'tree-state': state }
+
+ prefix = args.get('prefix')
+ if prefix:
+ for k, v in treeData.items():
+ treeData[prefix + replace(k[4:], '-', '_')] = v
md._push(InstanceDict(self, md))
md._push(treeData)
@@ -283,9 +294,10 @@
url = (url and ('%s/%s' % (url, tpUrl))) or tpUrl
root_url = root_url or tpUrl
- treeData['tree-item-url']=url
- treeData['tree-level']=level
- treeData['tree-item-expanded']=0
+ ptreeData = add_with_prefix(treeData, 'tree', args.get('prefix'))
+ ptreeData['tree-item-url']=url
+ ptreeData['tree-level']=level
+ ptreeData['tree-item-expanded']=0
idattr=args['id']
output=data.append
@@ -404,7 +416,7 @@
param = ""
if exp:
- treeData['tree-item-expanded']=1
+ ptreeData['tree-item-expanded']=1
output('<A NAME="%s" HREF="%s?%stree-c=%s#%s">'
'<IMG SRC="%s/p_/mi" ALT="-" BORDER=0></A>' %
(id, root_url, param, s, id, script))
@@ -463,7 +475,7 @@
else: doc=None
if doc is not None:
treeData['-tree-substate-']=sub
- treeData['tree-level']=level
+ ptreeData['tree-level']=level
md._push(treeData)
try: output(doc(
None,md,
@@ -482,7 +494,7 @@
else: doc=None
if doc is not None:
treeData['-tree-substate-']=sub
- treeData['tree-level']=level
+ ptreeData['tree-level']=level
md._push(treeData)
try: output(doc(
None,md,