comparison piecrust/data/builder.py @ 723:606f6d57b5df

routing: Cleanup URL routing and improve page matching. * Add new types of route parameters for integers (int4, int2, int). * Remove hard-coded hacks around converting year/month/day values. * Make the blog post routes use the new typed parameters. * Fix problems with matching routes with integer parameters when they can get confused with a sub-page number.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 29 May 2016 20:19:28 -0700
parents 93b656f0af54
children 0da1207472d3
comparison
equal deleted inserted replaced
722:f0a3af3fbea2 723:606f6d57b5df
5 from piecrust.data.linker import PageLinkerData 5 from piecrust.data.linker import PageLinkerData
6 from piecrust.data.pagedata import PageData 6 from piecrust.data.pagedata import PageData
7 from piecrust.data.paginator import Paginator 7 from piecrust.data.paginator import Paginator
8 from piecrust.data.piecrustdata import PieCrustData 8 from piecrust.data.piecrustdata import PieCrustData
9 from piecrust.data.providersdata import DataProvidersData 9 from piecrust.data.providersdata import DataProvidersData
10 from piecrust.uriutil import split_sub_uri
11 10
12 11
13 logger = logging.getLogger(__name__) 12 logger = logging.getLogger(__name__)
14 13
15 14
30 29
31 30
32 def build_page_data(ctx): 31 def build_page_data(ctx):
33 app = ctx.app 32 app = ctx.app
34 page = ctx.page 33 page = ctx.page
35 first_uri, _ = split_sub_uri(app, ctx.uri)
36 pgn_source = ctx.pagination_source or get_default_pagination_source(page) 34 pgn_source = ctx.pagination_source or get_default_pagination_source(page)
35 first_uri = ctx.page.getUri(1)
37 36
38 pc_data = PieCrustData() 37 pc_data = PieCrustData()
39 config_data = PageData(page, ctx) 38 config_data = PageData(page, ctx)
40 paginator = Paginator(page, pgn_source, 39 paginator = Paginator(page, pgn_source,
41 page_num=ctx.page_num, 40 page_num=ctx.page_num,