[Zope] batching help

Nicolas Georgakopoulos nicolasg at vtrip.net
Thu Dec 15 08:44:37 EST 2005


Dragos Chirila wrote:

> 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 )
>>
>
>
Thanks for your suggestion Dragos , I want to do it the zope batch way 
(I suppose it is simpler) if I can...
I will keep in mind your function if nothing else can be done.

Thanks again.


More information about the Zope mailing list