comparison piecrust/serving.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 980bbbd0705e
children b7ab1b503510
comparison
equal deleted inserted replaced
279:980bbbd0705e 280:8c0c53a315ae
15 from werkzeug.wrappers import Request, Response 15 from werkzeug.wrappers import Request, Response
16 from werkzeug.wsgi import ClosingIterator, wrap_file 16 from werkzeug.wsgi import ClosingIterator, wrap_file
17 from jinja2 import FileSystemLoader, Environment 17 from jinja2 import FileSystemLoader, Environment
18 from piecrust.app import PieCrust 18 from piecrust.app import PieCrust
19 from piecrust.data.filters import ( 19 from piecrust.data.filters import (
20 PaginationFilter, HasFilterClause, IsFilterClause) 20 PaginationFilter, HasFilterClause, IsFilterClause,
21 page_value_accessor)
21 from piecrust.environment import StandardEnvironment 22 from piecrust.environment import StandardEnvironment
22 from piecrust.processing.base import ProcessorPipeline 23 from piecrust.processing.base import ProcessorPipeline
23 from piecrust.rendering import PageRenderingContext, render_page 24 from piecrust.rendering import PageRenderingContext, render_page
24 from piecrust.sources.base import PageFactory, MODE_PARSING 25 from piecrust.sources.base import PageFactory, MODE_PARSING
25 26
261 # We force the rendering of the page because it could not have 262 # We force the rendering of the page because it could not have
262 # changed, but include pages that did change. 263 # changed, but include pages that did change.
263 render_ctx = PageRenderingContext(page, req_path, page_num, 264 render_ctx = PageRenderingContext(page, req_path, page_num,
264 force_render=True) 265 force_render=True)
265 if taxonomy is not None: 266 if taxonomy is not None:
266 flt = PaginationFilter() 267 flt = PaginationFilter(value_accessor=page_value_accessor)
267 if taxonomy.is_multiple: 268 if taxonomy.is_multiple:
268 flt.addClause(HasFilterClause(taxonomy.name, term_value)) 269 flt.addClause(HasFilterClause(taxonomy.name, term_value))
269 else: 270 else:
270 flt.addClause(IsFilterClause(taxonomy.name, term_value)) 271 flt.addClause(IsFilterClause(taxonomy.name, term_value))
271 render_ctx.pagination_filter = flt 272 render_ctx.pagination_filter = flt