diff 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
line wrap: on
line diff
--- a/piecrust/data/paginationdata.py	Wed Jan 31 08:50:39 2018 -0800
+++ b/piecrust/data/paginationdata.py	Wed Jan 31 08:53:27 2018 -0800
@@ -9,8 +9,10 @@
 
 
 class PaginationData(LazyPageConfigData):
-    def __init__(self, page):
+    def __init__(self, page, extra_data=None):
         super().__init__(page)
+        if extra_data:
+            self._values.update(extra_data)
 
     def _load(self):
         from piecrust.uriutil import split_uri
@@ -30,6 +32,7 @@
         self._mapLoader('timestamp', _load_timestamp)
         self._mapLoader('mtime', _load_content_mtime)
         self._mapLoader('assets', _load_assets)
+        self._mapLoader('family', _load_family)
 
         segment_names = page.config.get('segments')
         for name in segment_names:
@@ -42,6 +45,11 @@
     return Assetor(data._page)
 
 
+def _load_family(data, name):
+    from piecrust.data.linker import Linker
+    return Linker(data._page.source, data._page.content_item)
+
+
 def _load_date(data, name):
     page = data._page
     date_format = page.app.config.get('site/date_format')