diff --git a/roundup/cgi/ZTUtils/Batch.py b/roundup/cgi/ZTUtils/Batch.py index 66dde68..381d6a1 100644 --- a/roundup/cgi/ZTUtils/Batch.py +++ b/roundup/cgi/ZTUtils/Batch.py @@ -18,15 +18,15 @@ __version__='$Revision: 1.3 $'[11:-2] class LazyPrevBatch: def __of__(self, parent): - return Batch(parent._sequence, parent._size, - parent.first - parent._size + parent.overlap, 0, + return Batch(parent._sequence, parent.size, + parent.first - parent.size + parent.overlap, 0, parent.orphan, parent.overlap) class LazyNextBatch: def __of__(self, parent): try: parent._sequence[parent.end] except IndexError: return None - return Batch(parent._sequence, parent._size, + return Batch(parent._sequence, parent.size, parent.end - parent.overlap, 0, parent.orphan, parent.overlap) @@ -67,8 +67,7 @@ class Batch: start,end,sz = opt(start,end,size,orphan,sequence) self._sequence = sequence - self.size = sz - self._size = size + self.size = size self.start = start self.end = end self.orphan = orphan @@ -92,7 +91,9 @@ class Batch: def opt(start,end,size,orphan,sequence): if size < 1: - if start > 0 and end > 0 and end >= start: + if size == 0: + size=len(sequence) + elif start > 0 and end > 0 and end >= start: size=end+1-start else: size=7 diff --git a/roundup/cgi/templating.py b/roundup/cgi/templating.py index b0eaf02..3c0af3b 100644 --- a/roundup/cgi/templating.py +++ b/roundup/cgi/templating.py @@ -2831,8 +2831,11 @@ class Batch(ZTUtils.Batch): def previous(self): if self.start == 1: return None - return Batch(self.client, self._sequence, self._size, - self.first - self._size + self.overlap, 0, self.orphan, + if self.size == 0: + return Batch(self.client, self._sequence, self.size, + 0, 0, self.orphan, self.overlap) + return Batch(self.client, self._sequence, self.size, + self.first - self.size + self.overlap, 0, self.orphan, self.overlap) def next(self): @@ -2840,7 +2843,7 @@ class Batch(ZTUtils.Batch): self._sequence[self.end] except IndexError: return None - return Batch(self.client, self._sequence, self._size, + return Batch(self.client, self._sequence, self.size, self.end - self.overlap, 0, self.orphan, self.overlap) class TemplatingUtils: