[Zope-dev] Weird batches produced by dtml-in

Bjorn Stabell bjorn@exoweb.net
Tue, 11 Feb 2003 17:01:57 +0800


Hello,

I'm trying to implement a Google-like pagination using the dtml-in
"batching system", and I'm getting some very strange results.  Either
I'm overlooking something obvious or there is a problem with dtml-in.
See attached source code of simplified example that produces the strange
results.

The first time I access the page the results are as follows:

    0-9 10-19 20-29 30-39 40-49 50-59 60-69 70-79=20

If I click '10-19' it'll take me to batch_start=3D10, which gives the
following strange results:

    0-8 10-19 19-28 29-38 39-48 49-58 59-68 69-78 79-79=20

I have no idea why the first batch is now 0-8 and the next batch is now
19-28.  Shouldn't they be 0-9 and 20-29 like above?

I'm using Zope 2.6.1 precompiled Linux version.


-----------------------------

<dtml-let
  batch=3D"_.range(100, 180)"
  batch_size=3D"10"
  batch_start=3D"REQUEST.get('batch_start', 0)">

<dtml-in batch start=3D"batch_start" size=3D"batch_size" overlap=3D"0">
  &dtml-sequence-item;<br>
</dtml-in>

<dtml-in batch start=3D"batch_start" size=3D"batch_size" previous
overlap=3D"0">
<dtml-in previous-batches mapping>
  <a href=3D"<dtml-var URL><dtml-var
sequence-query>batch_start=3D&dtml-batch-start-index;">
    &dtml-batch-start-index;-&dtml-batch-end-index;
  </a>
</dtml-in>
</dtml-in>

<STRONG>&dtml-batch_start;-<dtml-var "batch_size + _.int(batch_start) -
1"></STRONG>

<dtml-in batch start=3D"batch_start" size=3D"batch_size" next =
overlap=3D"0">
<dtml-in next-batches mapping>
  <a href=3D"<dtml-var URL><dtml-var
sequence-query>batch_start=3D&dtml-batch-start-index;">
    &dtml-batch-start-index;-&dtml-batch-end-index;
  </a>
</dtml-in>
</dtml-in>

</dtml-let>