RE: [Zope] Get all folder objects in a folder
Hi Oliver, could you try using a path expression <div tal:define="folders here/list_folders"> or with python <div tal:define="folders python: container.list_folders"> that is, without the parentheses? Regards, Roger ? -----Oorspronkelijk bericht----- ? Van: Oliver Marx [mailto:oliver@tekk.dk] ? Verzonden: woensdag 3 juli 2002 15:43 ? Aan: Zope mailinglist ? Onderwerp: [Zope] Get all folder objects in a folder ? ? ? Hi ? ? I have a little python script: ? ? [PYTHON] ? ? """ ? Name list_folders ? Returns a list of folders. ? """ ? ? folders=container.objectValues('Folder') ? return folders ? ? [/PYTHON] ? ? I'm trying to call it from a ZPT ? ? [ZPT] ? ? <metal:block metal:define-macro="column"> ? ? <div tal:define="folders python:here.list_folders()"> ? ? <table class="box" summary="Test" cellpadding="0" cellspacing="0"> ? <thead> ? <tr><th>Navigation</th><th class="empty"> </th></tr> ? </thead> ? <tbody> ? ? <tr valign="top" tal:repeat="folder folders"> ? <td><a href="./Partners" ? tal:attributes="href folder/absolute_url" ? tal:content="folder/getId">Partners</a></td> ? </tr> ? </tbody> ? ? </table> ? </div> ? ? </metal:block> ? ? [/ZPT] ? ? But it doesn't work. Zope complains about the call ? python:here.list_folders(). ?
I have been there :D This is the error I get: exceptions.AttributeError on list_folders in '', at line 3, column 1 Traceback (innermost last): File C:\PROGRA~1\Emma\lib\python\ZPublisher\Publish.py, line 150, in publish_module File C:\PROGRA~1\Emma\lib\python\ZPublisher\Publish.py, line 114, in publish File C:\PROGRA~1\Emma\lib\python\Zope\__init__.py, line 159, in zpublisher_exception_hook (Object: custom) File C:\PROGRA~1\Emma\lib\python\ZPublisher\Publish.py, line 98, in publish File C:\PROGRA~1\Emma\lib\python\ZPublisher\mapply.py, line 88, in mapply (Object: main_left_column) File C:\PROGRA~1\Emma\lib\python\ZPublisher\Publish.py, line 39, in call_object (Object: main_left_column) File C:\PROGRA~1\Emma\lib\python\Shared\DC\Scripts\Bindings.py, line 252, in __call__ (Object: main_left_column) File C:\PROGRA~1\Emma\lib\python\Shared\DC\Scripts\Bindings.py, line 283, in _bindAndExec (Object: main_left_column) File C:\PROGRA~1\Emma\lib\python\Products\PageTemplates\ZopePageTemplate.py, line 210, in _exec (Object: main_left_column) File C:\PROGRA~1\Emma\lib\python\Products\PageTemplates\PageTemplate.py, line 86, in pt_render (Object: main_left_column) (Info: {'container': <Folder instance at 019C1870>, 'here': <Folder instance at 019C1870>, 'modules': <Products.PageTemplates.ZRPythonExpr._SecureModuleImporter instance at 01066574>, 'nothing': None, 'options': {'args': ()}, 'request': <h3>form</h3><table></table><h3>cookies</h3><table><tr valign="top" align="left"><th>tree-s</th><td>'eJyLjlZ3hANPW/XYWAAtiQTP'</td></tr><tr valign="top" align="left"><th>sql_pref__cols</th><td>'50'</td></tr><tr valign="top" align="left"><th>dtpref_cols</th><td>'45'</td></tr><tr valign="top" align="left"><th>sql_pref__rows</th><td>'15'</td></tr><tr valign="top" align="left"><th>dtpref_rows</th><td>'20'</td></tr></table><h3>lazy items</h3><table><tr valign="top" align="left"><th>SESSION</th><td><Python Method object at 01667160></td></tr></table><h3>other</h3><table><tr valign="top" align="left"><th>dtpref_rows</th><td>'20'</td></tr><tr valign="top" align="left"><th>BASE4</th><td>'http://emma:8080/TEKK/portal_skins/custom'</ td></tr><tr valign="top" align="left"><th>BASE5</th><td>'http://emma:8080/TEKK/portal_skins/custom/ma in_left_column'</td></tr><tr valign="top" align="left"><th>dtpref_cols</th><td>'45'</td></tr><tr valign="top" align="left"><th>BASE3</th><td>'http://emma:8080/TEKK/portal_skins'</td></tr
<tr valign="top" align="left"><th>URL2</th><td>'http://emma:8080/TEKK/portal_skins'</td></tr> <tr valign="top" align="left"><th>BASE1</th><td>'http://emma:8080'</td></tr><tr valign="top" align="left"><th>BASE0</th><td>'http://emma:8080'</td></tr><tr valign="top" align="left"><th>URL1</th><td>'http://emma:8080/TEKK/portal_skins/custom'</t d></tr><tr valign="top" align="left"><th>SERVER_URL</th><td>'http://emma:8080'</td></tr><tr valign="top" align="left"><th>AUTHENTICATED_USER</th><td>Oliver</td></tr><tr valign="top" align="left"><th>TraversalRequestNameStack</th><td>[]</td></tr><tr valign="top" align="left"><th>tree-s</th><td>'eJyLjlZ3hANPW/XYWAAtiQTP'</td></tr><tr valign="top" align="left"><th>AUTHENTICATION_PATH</th><td>''</td></tr><tr valign="top" align="left"><th>sql_pref__rows</th><td>'15'</td></tr><tr valign="top" align="left"><th>traverse_subpath</th><td>[]</td></tr><tr valign="top" align="left"><th>URL3</th><td>'http://emma:8080/TEKK'</td></tr><tr valign="top" align="left"><th>URL0</th><td>'http://emma:8080/TEKK/portal_skins/custom/mai n_left_column'</td></tr><tr valign="top" align="left"><th>URL4</th><td>'http://emma:8080'</td></tr><tr valign="top" align="left"><th>sql_pref__cols</th><td>'50'</td></tr><tr valign="top" align="left"><th>PUBLISHED</th><td><ZopePageTemplate instance at 015EC430></td></tr><tr valign="top" align="left"><th>URL</th><td>'http://emma:8080/TEKK/portal_skins/custom/main _left_column'</td></tr><tr valign="top" align="left"><th>BASE2</th><td>'http://emma:8080/TEKK'</td></tr><tr valign="top" align="left"><th>URL0</th><td>http://emma:8080/TEKK/portal_skins/custom/main _left_column</td></tr><tr valign="top" align="left"><th>URL1</th><td>http://emma:8080/TEKK/portal_skins/custom</td> </tr><tr valign="top" align="left"><th>URL2</th><td>http://emma:8080/TEKK/portal_skins</td></tr><t r valign="top" align="left"><th>URL3</th><td>http://emma:8080/TEKK</td></tr><tr valign="top" align="left"><th>URL4</th><td>http://emma:8080</td></tr><tr valign="top" align="left"><th>BASE0</th><td>http://emma:8080</td></tr><tr valign="top" align="left"><th>BASE1</th><td>http://emma:8080</td></tr><tr valign="top" align="left"><th>BASE2</th><td>http://emma:8080/TEKK</td></tr><tr valign="top" align="left"><th>BASE3</th><td>http://emma:8080/TEKK/portal_skins</td></tr>< tr valign="top" align="left"><th>BASE4</th><td>http://emma:8080/TEKK/portal_skins/custom</td </tr><tr valign="top" align="left"><th>BASE5</th><td>http://emma:8080/TEKK/portal_skins/custom/mai n_left_column</td></tr></table><h3>environ</h3><table><tr valign="top" align="left"><th>HTTP_ACCEPT_ENCODING</th><td>'gzip, deflate'</td></tr><tr valign="top" align="left"><th>channel.creation_time</th><td>1025704596</td></tr><tr valign="top" align="left"><th>SERVER_PROTOCOL</th><td>'HTTP/1.1'</td></tr><tr valign="top" align="left"><th>SERVER_PORT</th><td>'8080'</td></tr><tr valign="top" align="left"><th>PATH_INFO</th><td>'/TEKK/portal_skins/custom/main_left_colu mn'</td></tr><tr valign="top" align="left"><th>HTTP_HOST</th><td>'emma:8080'</td></tr><tr valign="top" align="left"><th>REQUEST_METHOD</th><td>'GET'</td></tr><tr valign="top" align="left"><th>PATH_TRANSLATED</th><td>'\\TEKK\\portal_skins\\custom\\main _left_column'</td></tr><tr valign="top" align="left"><th>HTTP_COOKIE</th><td>'sql_pref__rows="15"; sql_pref__cols="50"; dtpref_rows="20"; dtpref_cols="45"; tree-s="eJyLjlZ3hANPW/XYWAAtiQTP"'</td></tr><tr valign="top" align="left"><th>SCRIPT_NAME</th><td>''</td></tr><tr valign="top" align="left"><th>SERVER_SOFTWARE</th><td>'Zope/(Zope 2.5.1 (binary release, python 2.1, win32-x86), python 2.1.3, win32) ZServer/1.1b1'</td></tr><tr valign="top" align="left"><th>HTTP_ACCEPT_LANGUAGE</th><td>'da'</td></tr><tr valign="top" align="left"><th>HTTP_ACCEPT</th><td>'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*'</td></tr><tr valign="top" align="left"><th>REMOTE_ADDR</th><td>'192.168.1.2'</td></tr><tr valign="top" align="left"><th>HTTP_REFERER</th><td>'http://emma:8080/TEKK/portal_skins/cu stom/main_left_column'</td></tr><tr valign="top" align="left"><th>SERVER_NAME</th><td>'emma'</td></tr><tr valign="top" align="left"><th>GATEWAY_INTERFACE</th><td>'CGI/1.1'</td></tr><tr valign="top" align="left"><th>HTTP_USER_AGENT</th><td>'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)'</td></tr><tr valign="top" align="left"><th>CONNECTION_TYPE</th><td>'Keep-Alive'</td></tr></table>, 'root': <Application instance at 0194EEA0>, 'template': <ZopePageTemplate instance at 015EC430>, 'traverse_subpath': [], 'user': Oliver}) File C:\PROGRA~1\Emma\lib\python\TAL\TALInterpreter.py, line 158, in __call__ File C:\PROGRA~1\Emma\lib\python\TAL\TALInterpreter.py, line 191, in interpret File C:\PROGRA~1\Emma\lib\python\TAL\TALInterpreter.py, line 503, in do_defineMacro File C:\PROGRA~1\Emma\lib\python\TAL\TALInterpreter.py, line 191, in interpret File C:\PROGRA~1\Emma\lib\python\TAL\TALInterpreter.py, line 345, in do_optTag_tal File C:\PROGRA~1\Emma\lib\python\TAL\TALInterpreter.py, line 330, in do_optTag File C:\PROGRA~1\Emma\lib\python\TAL\TALInterpreter.py, line 325, in no_tag File C:\PROGRA~1\Emma\lib\python\TAL\TALInterpreter.py, line 191, in interpret File C:\PROGRA~1\Emma\lib\python\TAL\TALInterpreter.py, line 402, in do_setLocal_tal File C:\PROGRA~1\Emma\lib\python\Products\PageTemplates\TALES.py, line 247, in evaluate File C:\PROGRA~1\Emma\lib\python\Products\PageTemplates\ZRPythonExpr.py, line 49, in __call__ (Info: container.list_folders) File Python expression "container.list_folders", line 2, in f File C:\PROGRA~1\Emma\lib\python\AccessControl\ZopeGuards.py, line 47, in guarded_getattr (Object: custom) TALESError: (see above)
-----Original Message----- From: zope-admin@zope.org [mailto:zope-admin@zope.org]On Behalf Of Roger Erens Sent: 3. juli 2002 15:52 To: 'zope@zope.org' Subject: RE: [Zope] Get all folder objects in a folder
Hi Oliver,
could you try using a path expression <div tal:define="folders here/list_folders"> or with python <div tal:define="folders python: container.list_folders"> that is, without the parentheses?
Regards, Roger
? -----Oorspronkelijk bericht----- ? Van: Oliver Marx [mailto:oliver@tekk.dk] ? Verzonden: woensdag 3 juli 2002 15:43 ? Aan: Zope mailinglist ? Onderwerp: [Zope] Get all folder objects in a folder ? ? ? Hi ? ? I have a little python script: ? ? [PYTHON] ? ? """ ? Name list_folders ? Returns a list of folders. ? """ ? ? folders=container.objectValues('Folder') ? return folders ? ? [/PYTHON] ? ? I'm trying to call it from a ZPT ? ? [ZPT] ? ? <metal:block metal:define-macro="column"> ? ? <div tal:define="folders python:here.list_folders()"> ? ? <table class="box" summary="Test" cellpadding="0" cellspacing="0"> ? <thead> ? <tr><th>Navigation</th><th class="empty"> </th></tr> ? </thead> ? <tbody> ? ? <tr valign="top" tal:repeat="folder folders"> ? <td><a href="./Partners" ? tal:attributes="href folder/absolute_url" ? tal:content="folder/getId">Partners</a></td> ? </tr> ? </tbody> ? ? </table> ? </div> ? ? </metal:block> ? ? [/ZPT] ? ? But it doesn't work. Zope complains about the call ? python:here.list_folders(). ?
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev ) --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.371 / Virus Database: 206 - Release Date: 13-06-2002
Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.371 / Virus Database: 206 - Release Date: 13-06-2002
Oliver Marx writes:
I have been there :D
This is the error I get:
exceptions.AttributeError on list_folders in '', at line 3, column 1 .... File Python expression "container.list_folders", line 2, in f "container" does not have an attribute "list_folders"!
Apparently, "container" is different from what you expect... Maybe, you mean "here"? Dieter
participants (3)
-
Dieter Maurer -
Oliver Marx -
Roger Erens