Mercurial > piecrust2
changeset 1088:c5f1936e9e89
data: Fix recently introduced bug with blog data provider.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 15 Feb 2018 23:46:37 -0800 |
parents | 20f779b5591b |
children | a4d7ff2cdc5c |
files | piecrust/dataproviders/blog.py |
diffstat | 1 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/piecrust/dataproviders/blog.py Thu Feb 15 22:29:40 2018 -0800 +++ b/piecrust/dataproviders/blog.py Thu Feb 15 23:46:37 2018 -0800 @@ -1,11 +1,12 @@ import time +import collections.abc from piecrust.dataproviders.base import DataProvider from piecrust.dataproviders.pageiterator import PageIterator from piecrust.sources.list import ListSource from piecrust.sources.taxonomy import Taxonomy -class BlogDataProvider(DataProvider): +class BlogDataProvider(DataProvider, collections.abc.Mapping): PROVIDER_NAME = 'blog' debug_render_doc = """Provides a list of blog posts and yearly/monthly @@ -42,13 +43,16 @@ @property def months(self): self._buildArchives() - return self._montly + return self._monthly @property def taxonomies(self): return list(self._app.config.get('site/taxonomies').keys()) def __getitem__(self, name): + if name in ['posts', 'years', 'months', 'taxonomies']: + return getattr(self, name) + self._buildArchives() return self._taxonomies[name] @@ -59,6 +63,16 @@ except KeyError: raise AttributeError("No such taxonomy: %s" % name) + def __len__(self): + return 4 + len(self.taxonomies) + + def __iter__(self): + yield 'posts' + yield 'years' + yield 'months' + yield 'taxonomies' + yield from self.taxonomies + def _debugRenderTaxonomies(self): return self.taxonomies