diff piecrust/sources/blogarchives.py @ 1144:9f3e702a8a69

bake: Give unique source specs to each taxonomy or blog archive page. This prevents caching issues in some situations, leading to one tag page reusing the data from a previous tag page.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 05 Jun 2018 22:05:46 -0700
parents 5f97b5b59dfe
children
line wrap: on
line diff
--- a/piecrust/sources/blogarchives.py	Tue Jun 05 21:59:41 2018 -0700
+++ b/piecrust/sources/blogarchives.py	Tue Jun 05 22:05:46 2018 -0700
@@ -42,7 +42,7 @@
     def findContentFromRoute(self, route_params):
         year = route_params['year']
         return ContentItem(
-            '_index',
+            '_index[%s]' % year,
             {'route_params': {'year': year}})
 
     def prepareRenderContext(self, ctx):
@@ -165,11 +165,6 @@
         self._pagebaker.stopWriterQueue()
 
     def createJobs(self, ctx):
-        logger.debug("Caching template page for blog archives '%s'." %
-                     self.inner_source.name)
-        page = self.app.getPage(self.source, ContentItem('_index', {}))
-        page._load()
-
         logger.debug("Building blog archives for: %s" %
                      self.inner_source.name)
         self._buildDirtyYears(ctx)
@@ -181,13 +176,12 @@
         current_record = ctx.current_record
 
         for y in self._dirty_years:
-            record_entry_spec = '_index[%04d]' % y
+            item_spec = '_index[%04d]' % y
 
-            jobs.append(create_job(self, '_index',
-                                   year=y,
-                                   record_entry_spec=record_entry_spec))
+            jobs.append(create_job(self, item_spec,
+                                   year=y))
 
-            entry = rec_fac(record_entry_spec)
+            entry = rec_fac(item_spec)
             current_record.addEntry(entry)
 
         if len(jobs) > 0:
@@ -196,7 +190,7 @@
 
     def run(self, job, ctx, result):
         year = job['year']
-        content_item = ContentItem('_index',
+        content_item = ContentItem('_index[%04d]' % year,
                                    {'year': year,
                                     'route_params': {'year': year}})
         page = Page(self.source, content_item)