[ZPT] tal:repeat and variables
Fernando Martins
fmartins@hetnet.nl
Thu, 13 Feb 2003 20:59:46 +0100
Hi,
Troy Farrell wrote:
> Clemens Robbenhaar wrote:
> > <snip>
> >
> > I don't think there is a better way. The tal:repeat is just designed in
> > a way that all elements in a repeat are rendered nearly independent of
> > each other.
> >
> > Despite it is actually presentation logic and not application logic, I
> > would tend to filter the result set through a python script, replacing
> > the unwanted entries by empty strings. I did not work with SQL result
> > sequences, but I guess one maybe has to make a copy of the result
> > sequence, as the original sequence may be immutable.
>
> I'd have to agree: this is a job for a python script. I would make a
> dictionary of tuples (or lists) like this:
>
> {'Computers': ('John','Dilvert','Smith')
> ,'Software': ('Peter','Mary',)
> }
>
>
> <table>
> <span tal:omit-tag=""
> tal:repeat="k python:data.keys()">
> <tr tal:repeat="d data[k]">
> <td tal:content="k"
> tal:condition="repeat/d/start"/>
> <td tal:content="d">
> </tr>
> </span>
> </table>
>
> The code is untested, but I hope that helps you out...
Albeit for the type of table presented I prefer Evan's solution, this is
also a helpeful technique. Thanks.
For the record, the debugged code is:
<table>
<span tal:omit-tag=""
tal:repeat="k python:data.keys()">
<tr tal:repeat="d python:data[k]">
<td tal:condition="repeat/d/start"
tal:content="k"
tal:attributes="rowspan python:len(data[k])"/>
<td tal:content="d"/>
</tr>
</span>
</table>
Cheers,
Fernando