[Zope] batching help

Dragos Chirila d.chirila at finsiel.ro
Thu Dec 15 07:56:13 EST 2005


Hi

I suggest to use the following function that

def get_grouped_list(self, seq=[], size=3):
	#get the list with all items grouped
	return [seq[i:i+size] for i in range(0, len(seq), size)]

that takes as parameter a list and goups items in slices with length = size.

 >>> def get_grouped_list(seq=[], size=3):
...     return [seq[i:i+size] for i in range(0, len(seq), size)]
...
 >>> l = [1,2,3,4,5,6,7,8]
 >>> get_grouped_list(l)
[[1, 2, 3], [4, 5, 6], [7, 8]]
 >>> get_grouped_list(l, 4)
[[1, 2, 3, 4], [5, 6, 7, 8]]
 >>>

Then iterating this is something like:

<tr tal:repeat="slice python:<someobject>.get_grouped_list(yourlist)">
     <td tal:repeat="item slice">
         <span tal:replace="item" />
     </td>
</tr>


Hope this will help.
Dragos


Nicolas Georgakopoulos wrote:
> Hello all , I'm trying to display on the same page a table with (3 
> columns) with content from a list . I'm trying to batch the results so 
> that every 3 elements anothe row is created.
> Can anyone give me a clue how to do that ?
> 
> this is my code:
> 
> 
> <table tal:define="Rnumber 
> python:context.cm1.content.specialfile.getList('link_list') ; batch 
> python:modules['ZTUtils'].Batch(Rnumber,size=3,start=0)">
>        <th colspan="3">Main Title</th>
>                <tr><th>Title 1</th><th>Title 2</th><th>Title 3</th></tr>
>                <tr>
>                                <td tal:repeat="num batch">
>                                <span tal:condition="python:num < 3" 
> tal:replace="structure num"> content goes here.. </span>
>                    </td>
>                </tr>                                     <!--  <tr>
>                                    <td tal:repeat="num batch">
>                                <span tal:replace="structure num"> 
> Material goes here </span>
>                    </td>
>                </tr> 
> -->                                                     </table>
> _______________________________________________
> Zope maillist  -  Zope at 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 )
> 


-- 
Dragos Chirila
Programmer, Finsiel Romania (http://www.finsiel.ro)
44A, Ficusului St. - 013975 Bucharest
Tel: +40 21 2320193, Fax: +40 21 2329807
Jabber: dragos at jabber.finsiel.ro


More information about the Zope mailing list