Mercurial > piecrust2
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 |