changeset 1033:57283302b3ee

data: Fix a bug when listing a blog's posts twice on a page.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 16 Jan 2018 08:38:46 -0800
parents 54159951d97a
children 96f1e5e377ef
files piecrust/dataproviders/blog.py
diffstat 1 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/piecrust/dataproviders/blog.py	Tue Jan 16 08:38:06 2018 -0800
+++ b/piecrust/dataproviders/blog.py	Tue Jan 16 08:38:46 2018 -0800
@@ -30,6 +30,9 @@
     @property
     def posts(self):
         self._buildPosts()
+        # Reset each time on access in case a page is showing 2 different
+        # lists of the same blog.
+        self._posts.reset()
         return self._posts
 
     @property
@@ -70,7 +73,7 @@
     def _buildPosts(self):
         if self._posts is None:
             it = PageIterator(self._sources[0], current_page=self._page)
-            it._load_event += self._onIteration
+            self._onIteration()
             self._posts = it
 
     def _buildArchives(self):
@@ -148,11 +151,11 @@
             self._taxonomies[tax_name] = list(
                 sorted(entries.values(), key=lambda i: i.term))
 
-        self._onIteration(None)
+        self._onIteration()
 
         self._archives_built = True
 
-    def _onIteration(self, it):
+    def _onIteration(self):
         if not self._ctx_set:
             rcs = self._app.env.render_ctx_stack
             if rcs.current_ctx: