Mercurial > piecrust2
comparison piecrust/data/paginator.py @ 280:8c0c53a315ae
data: Correctly build pagination filters when we know items are pages.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 01 Mar 2015 21:39:26 -0800 |
parents | f130365568ff |
children | 9b75b49a4084 |
comparison
equal
deleted
inserted
replaced
279:980bbbd0705e | 280:8c0c53a315ae |
---|---|
1 import math | 1 import math |
2 import logging | 2 import logging |
3 from werkzeug.utils import cached_property | 3 from werkzeug.utils import cached_property |
4 from piecrust.data.filters import PaginationFilter | 4 from piecrust.data.filters import PaginationFilter, page_value_accessor |
5 from piecrust.data.iterators import PageIterator | 5 from piecrust.data.iterators import PageIterator |
6 from piecrust.sources.interfaces import IPaginationSource | 6 from piecrust.sources.interfaces import IPaginationSource |
7 | 7 |
8 | 8 |
9 logger = logging.getLogger(__name__) | 9 logger = logging.getLogger(__name__) |
195 offset=offset, limit=self.items_per_page, | 195 offset=offset, limit=self.items_per_page, |
196 locked=True) | 196 locked=True) |
197 self._iterator._iter_event += self._onIteration | 197 self._iterator._iter_event += self._onIteration |
198 | 198 |
199 def _getPaginationFilter(self): | 199 def _getPaginationFilter(self): |
200 f = PaginationFilter() | 200 f = PaginationFilter(value_accessor=page_value_accessor) |
201 | 201 |
202 if self._pgn_filter is not None: | 202 if self._pgn_filter is not None: |
203 f.addClause(self._pgn_filter.root_clause) | 203 f.addClause(self._pgn_filter.root_clause) |
204 | 204 |
205 if isinstance(self._source, IPaginationSource): | 205 if isinstance(self._source, IPaginationSource): |