On Wed, 01 Sep 2004 14:45:19 +0200 Johan Carlsson <johanc@easypublisher.com> wrote:
Hi, I need help :-)
I'm trying to implement a new Widget for Archetypes. So I have to write TAL (not my favorite hobby).
Here's what I've settled for so far: vocab is the DisplayList derivative (item is a key).
<tal:loop repeat="item vocab"> <optgroup tal:attributes="label python:vocab.getValue(item);" tal:condition="python:vocab.isLabel(item)"> </optgroup> <option selected="" tal:condition="not:python:vocab.isLabel(item)" tal:attributes="value item; selected python:test(here.unicodeTestIn(item, value),
'selected', None);" tal:content="python: vocab.getValue(item)"/> </tal:loop>
This is a simple neting mistake, try: <tal:loop repeat="item vocab"> <optgroup tal:attributes="label python:vocab.getValue(item);" tal:condition="python:vocab.isLabel(item)"> <option selected="" tal:condition="not:python:vocab.isLabel(item)" tal:attributes="value item; selected python:test(here.unicodeTestIn(item, value), ' selected', None);" tal:content="python: vocab.getValue(item)"/> </optgroup> </tal:loop> Though, as a matter of taste, I don't like this approach, I suspect that it will be hard to maintain, as it depends on whatever is generating vocab to deliver values in a sorted order. To me it would be much more natural to use a nested loop paramterized on the label value to generate the options.
Returns something like this:
<optgroup label="A"></optgroup> <option>Ada</option> <option>Ape</option> <optgroup label="B"></optgroup> <option>Bananas</option> <option>Buffy</option>
What I want is:
<optgroup label="A"> <option>Ada</option> <option>Ape</option> </optgroup> <optgroup label="B"> <option>Bananas</option> <option>Buffy</option> </optgroup>
Which renders quite differently.
Best Regards, Johan _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )