comparison piecrust/baking/single.py @ 280:8c0c53a315ae

data: Correctly build pagination filters when we know items are pages.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 01 Mar 2015 21:39:26 -0800
parents 74bea91c9630
children a2d283d1033d
comparison
equal deleted inserted replaced
279:980bbbd0705e 280:8c0c53a315ae
5 import urllib.error 5 import urllib.error
6 import urllib.parse 6 import urllib.parse
7 import urllib.request 7 import urllib.request
8 from piecrust.baking.records import FLAG_OVERRIDEN, FLAG_SOURCE_MODIFIED 8 from piecrust.baking.records import FLAG_OVERRIDEN, FLAG_SOURCE_MODIFIED
9 from piecrust.data.filters import (PaginationFilter, HasFilterClause, 9 from piecrust.data.filters import (PaginationFilter, HasFilterClause,
10 IsFilterClause, AndBooleanClause) 10 IsFilterClause, AndBooleanClause,
11 page_value_accessor)
11 from piecrust.rendering import (PageRenderingContext, render_page, 12 from piecrust.rendering import (PageRenderingContext, render_page,
12 PASS_FORMATTING, PASS_RENDERING) 13 PASS_FORMATTING, PASS_RENDERING)
13 from piecrust.sources.base import (PageFactory, 14 from piecrust.sources.base import (PageFactory,
14 REALM_NAMES, REALM_USER, REALM_THEME) 15 REALM_NAMES, REALM_USER, REALM_THEME)
15 16
62 if taxonomy_name and taxonomy_term: 63 if taxonomy_name and taxonomy_term:
63 # Must bake a taxonomy listing page... we'll have to add a 64 # Must bake a taxonomy listing page... we'll have to add a
64 # pagination filter for only get matching posts, and the output 65 # pagination filter for only get matching posts, and the output
65 # URL will be a bit different. 66 # URL will be a bit different.
66 tax = self.app.getTaxonomy(taxonomy_name) 67 tax = self.app.getTaxonomy(taxonomy_name)
67 pagination_filter = PaginationFilter() 68 pagination_filter = PaginationFilter(
69 value_accessor=page_value_accessor)
68 if tax.is_multiple: 70 if tax.is_multiple:
69 if isinstance(taxonomy_term, tuple): 71 if isinstance(taxonomy_term, tuple):
70 abc = AndBooleanClause() 72 abc = AndBooleanClause()
71 for t in taxonomy_term: 73 for t in taxonomy_term:
72 abc.addClause(HasFilterClause(taxonomy_name, t)) 74 abc.addClause(HasFilterClause(taxonomy_name, t))