Mercurial > piecrust2
diff piecrust/dataproviders/pageiterator.py @ 982:492b66482f12
pagination: Fix bad bug where all pages triggered pagination.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Mon, 30 Oct 2017 00:08:12 -0700 |
parents | 45ad976712ec |
children | d4e0c53aa6e8 |
line wrap: on
line diff
--- a/piecrust/dataproviders/pageiterator.py Sun Oct 29 22:51:57 2017 -0700 +++ b/piecrust/dataproviders/pageiterator.py Mon Oct 30 00:08:12 2017 -0700 @@ -77,7 +77,7 @@ combined_source = _CombinedSource(list(reversed(self._sources))) self._it = PageIterator(combined_source, current_page=self._page) - self._it._iter_event += self._onIteration + self._it._load_event += self._onIteration def _onIteration(self, it): if not self._iterated: @@ -106,6 +106,7 @@ self._next_page = None self._prev_page = None self._locked = False + self._load_event = Event() self._iter_event = Event() self._current_page = current_page self._initIterator() @@ -137,6 +138,7 @@ def __iter__(self): self._load() + self._iter_event.fire(self) return iter(self._cache) def __getattr__(self, name): @@ -203,10 +205,6 @@ return self._pagination_slicer.has_more return False - @property - def _is_loaded_and_has_more(self): - return self._is_loaded and self._has_more - def _simpleWrap(self, it_class, *args, **kwargs): self._ensureUnlocked() self._ensureUnloaded() @@ -296,7 +294,7 @@ pn_it = PaginationDataBuilderIterator(iter(pn)) self._prev_page, self._next_page = (list(pn_it)) - self._iter_event.fire(self) + self._load_event.fire(self) def _debugRenderDoc(self): return "Contains %d items" % len(self)