# HG changeset patch # User Ludovic Chabant # Date 1427577470 25200 # Node ID 6c5de6edacf7d9d686c9b07918a76743f0945f44 # Parent eb958151c8dcdb3f59363cc7a8923bc2270a5c42 internal: Be more forgiving about building `Taxonomy` objects. Add `setting_name`. The setting name of a taxonomy is whatever name is used to assign terms of that taxonomy to a page. If the taxonomy is "multiple", this is the name of the taxonomy. If not, it's the term name (a singular name). diff -r eb958151c8dc -r 6c5de6edacf7 piecrust/taxonomies.py --- a/piecrust/taxonomies.py Sat Mar 28 12:41:02 2015 -0700 +++ b/piecrust/taxonomies.py Sat Mar 28 14:17:50 2015 -0700 @@ -5,11 +5,17 @@ def __init__(self, app, name, config): self.app = app self.name = name - self.term_name = config['term'] - self.is_multiple = config['multiple'] - self.page_ref = config['page'] + self.term_name = config.get('term', name) + self.is_multiple = config.get('multiple', False) + self.page_ref = config.get('page') self._source_page_refs = {} + @property + def setting_name(self): + if self.is_multiple: + return self.name + return self.term_name + def resolvePagePath(self, source_name): pr = self.getPageRef(source_name) try: