Mercurial > piecrust2
diff piecrust/data/paginator.py @ 852:4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
* Everything is a `ContentSource`, including assets directories.
* Most content sources are subclasses of the base file-system source.
* A source is processed by a "pipeline", and there are 2 built-in pipelines,
one for assets and one for pages. The asset pipeline is vaguely functional,
but the page pipeline is completely broken right now.
* Rewrite the baking process as just running appropriate pipelines on each
content item. This should allow for better parallelization.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 17 May 2017 00:11:48 -0700 |
parents | a489162f2a17 |
children | f070a4fc033c |
line wrap: on
line diff
--- a/piecrust/data/paginator.py Sat Apr 29 21:42:22 2017 -0700 +++ b/piecrust/data/paginator.py Wed May 17 00:11:48 2017 -0700 @@ -11,23 +11,23 @@ class Paginator(object): debug_render = [ - 'has_more', 'items', 'has_items', 'items_per_page', - 'items_this_page', 'prev_page_number', 'this_page_number', - 'next_page_number', 'prev_page', 'next_page', - 'total_item_count', 'total_page_count', - 'next_item', 'prev_item'] + 'has_more', 'items', 'has_items', 'items_per_page', + 'items_this_page', 'prev_page_number', 'this_page_number', + 'next_page_number', 'prev_page', 'next_page', + 'total_item_count', 'total_page_count', + 'next_item', 'prev_item'] debug_render_invoke = [ - 'has_more', 'items', 'has_items', 'items_per_page', - 'items_this_page', 'prev_page_number', 'this_page_number', - 'next_page_number', 'prev_page', 'next_page', - 'total_item_count', 'total_page_count', - 'next_item', 'prev_item'] + 'has_more', 'items', 'has_items', 'items_per_page', + 'items_this_page', 'prev_page_number', 'this_page_number', + 'next_page_number', 'prev_page', 'next_page', + 'total_item_count', 'total_page_count', + 'next_item', 'prev_item'] def __init__(self, qualified_page, source, *, - page_num=1, pgn_filter=None, items_per_page=-1): + pgn_filter=None, items_per_page=-1): self._parent_page = qualified_page + self._page_num = qualified_page.page_num self._source = source - self._page_num = page_num self._iterator = None self._pgn_filter = pgn_filter self._items_per_page = items_per_page @@ -89,7 +89,7 @@ if self._items_per_page > 0: return self._items_per_page if self._parent_page: - ipp = self._parent_page.config.get('items_per_page') + ipp = self._parent_page.page.config.get('items_per_page') if ipp is not None: return ipp if isinstance(self._source, IPaginationSource): @@ -195,11 +195,11 @@ if self._parent_page: current_page = self._parent_page.page self._iterator = PageIterator( - self._source, - current_page=current_page, - pagination_filter=pag_filter, - offset=offset, limit=self.items_per_page, - locked=True) + self._source, + current_page=current_page, + pagination_filter=pag_filter, + offset=offset, limit=self.items_per_page, + locked=True) self._iterator._iter_event += self._onIteration def _getPaginationFilter(self):