comparison piecrust/generation/taxonomy.py @ 792:58ebf50235a5

routing: Simplify how routes are defined. * No more declaring the type of route parameters -- the sources and generators already know what type each parameter is supposed to be. * Same for variadic parameters -- we know already. * Update cache version to force a clear reload of the config. * Update tests. TODO: simplify code in the `Route` class to use source or generator transparently.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 07 Sep 2016 08:58:41 -0700
parents b8e760b3413e
children
comparison
equal deleted inserted replaced
791:504d6817352d 792:58ebf50235a5
6 from piecrust.configuration import ConfigurationError 6 from piecrust.configuration import ConfigurationError
7 from piecrust.data.filters import ( 7 from piecrust.data.filters import (
8 PaginationFilter, SettingFilterClause, 8 PaginationFilter, SettingFilterClause,
9 page_value_accessor) 9 page_value_accessor)
10 from piecrust.generation.base import PageGenerator, InvalidRecordExtraKey 10 from piecrust.generation.base import PageGenerator, InvalidRecordExtraKey
11 from piecrust.routing import RouteParameter
11 12
12 13
13 logger = logging.getLogger(__name__) 14 logger = logging.getLogger(__name__)
14 15
15 16
65 sm = config.get('slugify_mode') 66 sm = config.get('slugify_mode')
66 if not sm: 67 if not sm:
67 sm = app.config.get('site/slugify_mode', 'encode') 68 sm = app.config.get('site/slugify_mode', 'encode')
68 self.slugify_mode = _parse_slugify_mode(sm) 69 self.slugify_mode = _parse_slugify_mode(sm)
69 self.slugifier = _Slugifier(self.taxonomy, self.slugify_mode) 70 self.slugifier = _Slugifier(self.taxonomy, self.slugify_mode)
71
72 def getSupportedRouteParameters(self):
73 name = self.taxonomy.term_name
74 param_type = (RouteParameter.TYPE_PATH if self.taxonomy.is_multiple
75 else RouteParameter.TYPE_STRING)
76 return [RouteParameter(name, param_type,
77 variadic=self.taxonomy.is_multiple)]
70 78
71 def slugify(self, term): 79 def slugify(self, term):
72 return self.slugifier.slugify(term) 80 return self.slugifier.slugify(term)
73 81
74 def slugifyMultiple(self, terms): 82 def slugifyMultiple(self, terms):