diff 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
line wrap: on
line diff
--- a/piecrust/generation/taxonomy.py	Mon Sep 05 22:30:05 2016 -0700
+++ b/piecrust/generation/taxonomy.py	Wed Sep 07 08:58:41 2016 -0700
@@ -8,6 +8,7 @@
         PaginationFilter, SettingFilterClause,
         page_value_accessor)
 from piecrust.generation.base import PageGenerator, InvalidRecordExtraKey
+from piecrust.routing import RouteParameter
 
 
 logger = logging.getLogger(__name__)
@@ -68,6 +69,13 @@
         self.slugify_mode = _parse_slugify_mode(sm)
         self.slugifier = _Slugifier(self.taxonomy, self.slugify_mode)
 
+    def getSupportedRouteParameters(self):
+        name = self.taxonomy.term_name
+        param_type = (RouteParameter.TYPE_PATH if self.taxonomy.is_multiple
+                      else RouteParameter.TYPE_STRING)
+        return [RouteParameter(name, param_type,
+                               variadic=self.taxonomy.is_multiple)]
+
     def slugify(self, term):
         return self.slugifier.slugify(term)