Hi,

I am trying to run some "helloworld" test application with repoze.bfg, and
found 2 problems with the "tal:repeat" Chameleon templates.
(with the latest versions: repoze.bfg 1.0, chameleon.zpt 1.0.0,
chameleon.core 1.0.0)

1. This code, taken from the documentation (at
http://chameleon.repoze.org/docs/zpt/narr/tal.html#repeat-variables)

        <tr tal:repeat="item here.cart">
            <td tal:content="repeat.item.number">1</td>
            <td tal:content="item.description">Widget</td>
            <td tal:content="item.price">$1.50</td>
        </tr>

results in:
   AttributeError: 'repeatdict' object has no attribute 'item'
Dictionary access works OK, so if "repeat.item.number" is changed to
"repeat['item'].number()", then the template is displayed correctly.
Documentation says: "You can access the contents of the repeat variable
using either dictionary- or attribute-style access, e.g.
repeat['item'].start or repeat.item.start."
So this looks like either a documentation problem, or a bug in the code.

2. Attributes of a repeat variable in the examples are used without
parentheses at the end (like "repeat.item.number"), while the docs say:
"""With the exception of start, end, and index, all of the attributes of a
repeat variable are methods and must be called explicitly, e.g.
repeat['item'].length()."""
In fact, when the parens are skipped, then the method name is displayed in
the rendered page, something like:

 <bound method repeatitem.number of <chameleon.core.utils.repeatitem object
at 0x306e5d0>>

Please look into that, I can file a bug report if needed.
Thanks,
-- 
Maciek
_______________________________________________
Repoze-dev mailing list
Repoze-dev@lists.repoze.org
http://lists.repoze.org/listinfo/repoze-dev

Reply via email to