5.3.8.6 pagesize="..." attribute

This attribute is used to present a sequence of data one page at a time. The attribute value must be an integer that specifies the number of items to display in each page.

Use of the pagesize attribute places the sequence iterator into page mode and limits the number of elements that will be displayed.

For example:

>>> import albatross
>>> class Ctx(albatross.SimpleContext, albatross.HiddenFieldSessionMixin):
...     def __init__(self):
...         albatross.SimpleContext.__init__(self, '.')
... 
...
>>> ctx = Ctx()
>>> ctx.locals.__dict__.keys()
[]
>>> albatross.Template(ctx, '<magic>', '''
... <al-for iter="i" expr="range(500)" pagesize="20" whitespace="indent">
...  <al-value expr="i.value()">
... </al-for whitespace>
... ''').to_html(ctx)
>>> ctx.flush_content()
 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
>>> ctx.locals.__dict__.keys()
['i']

Pagination support requires that session support be present in the execution context. All of the Albatross application objects provide session capable execution contexts by default. The SimpleContext class does not support sessions so it is necessary to augment the class for the above example. Note also that when the <al-for> tag processes the pagesize attribute it places the sequence iterator into the session.