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