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