Mercurial > piecrust2
comparison piecrust/sources/blogarchives.py @ 876:d1095774bfcf
refactor: Fix some issues with record/cache entry collisions, add counters.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 15 Jun 2017 07:33:40 -0700 |
parents | 504ddb370df8 |
children | d6d35b2efd04 |
comparison
equal
deleted
inserted
replaced
875:7169bf42ec60 | 876:d1095774bfcf |
---|---|
38 def getSupportedRouteParameters(self): | 38 def getSupportedRouteParameters(self): |
39 return [RouteParameter('year', RouteParameter.TYPE_INT4)] | 39 return [RouteParameter('year', RouteParameter.TYPE_INT4)] |
40 | 40 |
41 def findContent(self, route_params): | 41 def findContent(self, route_params): |
42 year = route_params['year'] | 42 year = route_params['year'] |
43 spec = '_index[%04d]' % year | 43 spec = '_index' |
44 metadata = {'route_params': {'year': year}} | 44 metadata = { |
45 'record_entry_spec': '_index[%04d]' % year, | |
46 'route_params': {'year': year} | |
47 } | |
45 return ContentItem(spec, metadata) | 48 return ContentItem(spec, metadata) |
46 | 49 |
47 def prepareRenderContext(self, ctx): | 50 def prepareRenderContext(self, ctx): |
48 ctx.pagination_source = self.inner_source | 51 ctx.pagination_source = self.inner_source |
49 | 52 |
165 | 168 |
166 def shutdown(self): | 169 def shutdown(self): |
167 self._pagebaker.stopWriterQueue() | 170 self._pagebaker.stopWriterQueue() |
168 | 171 |
169 def createJobs(self, ctx): | 172 def createJobs(self, ctx): |
173 logger.debug("Caching template page for blog archives '%s'." % | |
174 self.inner_source.name) | |
175 page = self.app.getPage(self.source, ContentItem('_index', {})) | |
176 page._load() | |
177 | |
170 logger.debug("Building blog archives for: %s" % | 178 logger.debug("Building blog archives for: %s" % |
171 self.inner_source.name) | 179 self.inner_source.name) |
172 self._buildDirtyYears(ctx) | 180 self._buildDirtyYears(ctx) |
173 logger.debug("Got %d dirty years out of %d." % | 181 logger.debug("Got %d dirty years out of %d." % |
174 (len(self._dirty_years), len(self._all_years))) | 182 (len(self._dirty_years), len(self._all_years))) |
175 | 183 |
176 jobs = [] | 184 jobs = [] |
177 for y in self._dirty_years: | 185 for y in self._dirty_years: |
178 item = ContentItem( | 186 item = ContentItem( |
179 '_index[%04d]' % y, | 187 '_index', |
180 {'route_params': {'year': y}}) | 188 { |
189 'record_entry_spec': '_index[%04d]' % y, | |
190 'route_params': {'year': y} | |
191 }) | |
181 jobs.append(self.createJob(item)) | 192 jobs.append(self.createJob(item)) |
182 if len(jobs) > 0: | 193 if len(jobs) > 0: |
183 return jobs | 194 return jobs |
184 return None | 195 return None |
185 | 196 |