Mercurial > piecrust2
diff piecrust/rendering.py @ 334:b034f6f15e22
bake: Several bug taxonomy-related fixes for incorrect incremental bakes.
* Improve how the baker processes taxonomy terms and figures out what needs
to be re-baked or not.
* Create bake entries for clean taxnomy terms so they're not deleted by an
incremental bake.
* Add more information to bake records.
* Slugify taxonomy terms is now done by the route in one place.
* Fix a bug where the cache key for invalidating rendered segments was not
computed the same way as when the caching was done.
* Fix how term combinations are passed around, rendered, printed, parsed, etc.
(TODO: more word needed in the routing functions)
* Expose to the template whether a taxonomy term is a combination or not.
* Display term combinations better in the built-in theme.
* Rename `route.taxonomy` to `route.taxonomy_name` to prevent confusion.
* Add options to show bake records for previous bakes.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Fri, 03 Apr 2015 10:59:50 -0700 |
parents | 422052d2e978 |
children | 938be93215cb |
line wrap: on
line diff
--- a/piecrust/rendering.py Fri Apr 03 08:44:21 2015 -0700 +++ b/piecrust/rendering.py Fri Apr 03 10:59:50 2015 -0700 @@ -68,9 +68,6 @@ def source_metadata(self): return self.page.source_metadata - def reset(self): - self.used_pagination = None - def setPagination(self, paginator): if self.used_pagination is not None: raise Exception("Pagination has already been used.") @@ -82,9 +79,10 @@ self.used_source_names.add((source.name, self.current_pass)) def setTaxonomyFilter(self, taxonomy, term_value): + is_combination = isinstance(term_value, tuple) flt = PaginationFilter(value_accessor=page_value_accessor) if taxonomy.is_multiple: - if isinstance(term_value, tuple): + if is_combination: abc = AndBooleanClause() for t in term_value: abc.addClause(HasFilterClause(taxonomy.setting_name, t)) @@ -95,8 +93,10 @@ else: flt.addClause(IsFilterClause(taxonomy.setting_name, term_value)) self.pagination_filter = flt + self.custom_data = { - taxonomy.term_name: term_value} + taxonomy.term_name: term_value, + 'is_multiple_%s' % taxonomy.term_name: is_combination} def render_page(ctx): @@ -117,7 +117,7 @@ ctx.current_pass = PASS_FORMATTING repo = ctx.app.env.rendered_segments_repository if repo and not ctx.force_render: - cache_key = '%s:%s' % (ctx.uri, ctx.page_num) + cache_key = ctx.uri page_time = page.path_mtime contents = repo.get( cache_key,