comparison piecrust/data/paginationdata.py @ 912:cd236a6af9f6

data: Add access to route metadata in the templating data. It's available under `route`. Also, rename `slug` to `rel_url`, because it's confusing when `slug` could be the route metadata of the same name as provided by the default page source. The old `slug` is still there for backwards compatibility though.
author Ludovic Chabant <ludovic@chabant.com>
date Fri, 28 Apr 2017 10:05:14 -0700
parents a12ad254176e
children b447c24bc8d4
comparison
equal deleted inserted replaced
851:2c7e57d80bba 912:cd236a6af9f6
1 import copy
1 import time 2 import time
2 import logging 3 import logging
3 from piecrust.data.assetor import Assetor 4 from piecrust.data.assetor import Assetor
4 from piecrust.data.pagedata import LazyPageConfigData 5 from piecrust.data.pagedata import LazyPageConfigData
5 from piecrust.routing import create_route_metadata 6 from piecrust.routing import create_route_metadata
29 30
30 def _load(self): 31 def _load(self):
31 page = self._page 32 page = self._page
32 dt = page.datetime 33 dt = page.datetime
33 page_url = self._get_uri() 34 page_url = self._get_uri()
34 _, slug = split_uri(page.app, page_url) 35 _, rel_url = split_uri(page.app, page_url)
35 self._setValue('url', page_url) 36 self._setValue('url', page_url)
36 self._setValue('slug', slug) 37 self._setValue('rel_url', rel_url)
38 self._setValue('slug', rel_url) # For backwards compatibility
39 self._setValue('route', copy.deepcopy(self._route_metadata))
37 self._setValue( 40 self._setValue(
38 'timestamp', 41 'timestamp',
39 time.mktime(page.datetime.timetuple())) 42 time.mktime(page.datetime.timetuple()))
40 self._setValue('datetime', { 43 self._setValue('datetime', {
41 'year': dt.year, 'month': dt.month, 'day': dt.day, 44 'year': dt.year, 'month': dt.month, 'day': dt.day,