comparison piecrust/data/paginationdata.py @ 1055:7e4742a60d14

data: Add new properties and folder support to the `family` data endpoint. * Add `root` and `myself`. * Return groups as part of the children.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 31 Jan 2018 08:53:27 -0800
parents 45ad976712ec
children
comparison
equal deleted inserted replaced
1054:75f1b4460491 1055:7e4742a60d14
7 7
8 logger = logging.getLogger(__name__) 8 logger = logging.getLogger(__name__)
9 9
10 10
11 class PaginationData(LazyPageConfigData): 11 class PaginationData(LazyPageConfigData):
12 def __init__(self, page): 12 def __init__(self, page, extra_data=None):
13 super().__init__(page) 13 super().__init__(page)
14 if extra_data:
15 self._values.update(extra_data)
14 16
15 def _load(self): 17 def _load(self):
16 from piecrust.uriutil import split_uri 18 from piecrust.uriutil import split_uri
17 19
18 page = self._page 20 page = self._page
28 self._mapLoader('date', _load_date) 30 self._mapLoader('date', _load_date)
29 self._mapLoader('datetime', _load_datetime) 31 self._mapLoader('datetime', _load_datetime)
30 self._mapLoader('timestamp', _load_timestamp) 32 self._mapLoader('timestamp', _load_timestamp)
31 self._mapLoader('mtime', _load_content_mtime) 33 self._mapLoader('mtime', _load_content_mtime)
32 self._mapLoader('assets', _load_assets) 34 self._mapLoader('assets', _load_assets)
35 self._mapLoader('family', _load_family)
33 36
34 segment_names = page.config.get('segments') 37 segment_names = page.config.get('segments')
35 for name in segment_names: 38 for name in segment_names:
36 self._mapLoader('raw_' + name, _load_raw_segment) 39 self._mapLoader('raw_' + name, _load_raw_segment)
37 self._mapLoader(name, _load_rendered_segment) 40 self._mapLoader(name, _load_rendered_segment)
38 41
39 42
40 def _load_assets(data, name): 43 def _load_assets(data, name):
41 from piecrust.data.assetor import Assetor 44 from piecrust.data.assetor import Assetor
42 return Assetor(data._page) 45 return Assetor(data._page)
46
47
48 def _load_family(data, name):
49 from piecrust.data.linker import Linker
50 return Linker(data._page.source, data._page.content_item)
43 51
44 52
45 def _load_date(data, name): 53 def _load_date(data, name):
46 page = data._page 54 page = data._page
47 date_format = page.app.config.get('site/date_format') 55 date_format = page.app.config.get('site/date_format')