Mercurial > piecrust2
comparison piecrust/data/linker.py @ 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 | 00a0a65d08e6 |
children |
comparison
equal
deleted
inserted
replaced
1122:587bccf72d75 | 1123:1a214de1e1f7 |
---|---|
96 sibs.append(self._makeGroupData(i)) | 96 sibs.append(self._makeGroupData(i)) |
97 return sibs | 97 return sibs |
98 | 98 |
99 @property | 99 @property |
100 def has_children(self): | 100 def has_children(self): |
101 return bool(self.children) | 101 return bool(self._getAllChildren()) |
102 | 102 |
103 @property | 103 @property |
104 def children(self): | 104 def children(self): |
105 src = self._source | 105 src = self._source |
106 app = src.app | 106 app = src.app |
172 self._parent_group = self._source.getRelatedContents( | 172 self._parent_group = self._source.getRelatedContents( |
173 self._content_item, REL_PARENT_GROUP) | 173 self._content_item, REL_PARENT_GROUP) |
174 return self._parent_group | 174 return self._parent_group |
175 | 175 |
176 def _makePageData(self, page): | 176 def _makePageData(self, page): |
177 return _PageData(self, page) | 177 is_self = page.content_spec == self._content_item.spec |
178 return _PageData(page, is_self) | |
178 | 179 |
179 def _makeGroupData(self, group): | 180 def _makeGroupData(self, group): |
180 return _GroupData(self._source, group) | 181 return _GroupData(self._source, group) |
181 | 182 |
182 def _debugRenderAncestors(self): | 183 def _debugRenderAncestors(self): |
188 def _debugRenderChildren(self): | 189 def _debugRenderChildren(self): |
189 return [i.title for i in self.children] | 190 return [i.title for i in self.children] |
190 | 191 |
191 | 192 |
192 class _PageData(PaginationData): | 193 class _PageData(PaginationData): |
193 def __init__(self, linker, page): | 194 def __init__(self, page, is_self): |
194 super().__init__(page) | 195 super().__init__(page) |
195 self._linker = linker | 196 self.is_self = is_self |
197 self.is_page = True | |
196 | 198 |
197 def _load(self): | 199 def _load(self): |
198 super()._load() | 200 super()._load() |
199 self._mapValue('is_page', True) | 201 self._mapLoader('is_dir', lambda d, n: self.family.has_children) |
200 self._mapValue( | 202 self._mapLoader('is_group', lambda d, n: self.family.has_children) |
201 'is_self', | |
202 self._page.content_spec == self._linker._content_item.spec) | |
203 | |
204 self._mapLoader('is_dir', lambda d, n: self._linker.has_children) | |
205 self._mapLoader('is_group', lambda d, n: self._linker.has_children) | |
206 | 203 |
207 | 204 |
208 class _GroupData: | 205 class _GroupData: |
209 def __init__(self, source, group_item): | 206 def __init__(self, source, group_item): |
210 self._source = source | 207 self._source = source |