Mercurial > piecrust2
changeset 1123:1a214de1e1f7
data: Fix bug with page family data not returning correct `is_dir` value.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 27 Feb 2018 22:36:26 -0800 |
parents | 587bccf72d75 |
children | 4081f3dba541 |
files | piecrust/data/linker.py |
diffstat | 1 files changed, 8 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/piecrust/data/linker.py Tue Feb 27 21:52:21 2018 -0800 +++ b/piecrust/data/linker.py Tue Feb 27 22:36:26 2018 -0800 @@ -98,7 +98,7 @@ @property def has_children(self): - return bool(self.children) + return bool(self._getAllChildren()) @property def children(self): @@ -174,7 +174,8 @@ return self._parent_group def _makePageData(self, page): - return _PageData(self, page) + is_self = page.content_spec == self._content_item.spec + return _PageData(page, is_self) def _makeGroupData(self, group): return _GroupData(self._source, group) @@ -190,19 +191,15 @@ class _PageData(PaginationData): - def __init__(self, linker, page): + def __init__(self, page, is_self): super().__init__(page) - self._linker = linker + self.is_self = is_self + self.is_page = True def _load(self): super()._load() - self._mapValue('is_page', True) - self._mapValue( - 'is_self', - self._page.content_spec == self._linker._content_item.spec) - - self._mapLoader('is_dir', lambda d, n: self._linker.has_children) - self._mapLoader('is_group', lambda d, n: self._linker.has_children) + self._mapLoader('is_dir', lambda d, n: self.family.has_children) + self._mapLoader('is_group', lambda d, n: self.family.has_children) class _GroupData: