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):