changeset 483:64e1cd71b30b

serve: Try to serve taxonomy pages after all normal pages have failed.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 21 Jul 2015 22:42:47 -0700
parents cce911be024d
children d4321317beae
files piecrust/routing.py piecrust/serving/server.py
diffstat 2 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/piecrust/routing.py	Tue Jul 21 22:42:05 2015 -0700
+++ b/piecrust/routing.py	Tue Jul 21 22:42:47 2015 -0700
@@ -87,6 +87,10 @@
         self._createTemplateFunc(cfg.get('func'))
 
     @property
+    def is_taxonomy_route(self):
+        return self.taxonomy_name is not None
+
+    @property
     def source(self):
         for src in self.app.sources:
             if src.name == self.source_name:
--- a/piecrust/serving/server.py	Tue Jul 21 22:42:05 2015 -0700
+++ b/piecrust/serving/server.py	Tue Jul 21 22:42:47 2015 -0700
@@ -450,11 +450,15 @@
 
 def find_routes(routes, uri):
     res = []
+    tax_res = []
     for route in routes:
         metadata = route.matchUri(uri)
         if metadata is not None:
-            res.append((route, metadata))
-    return res
+            if route.is_taxonomy_route:
+                tax_res.append((route, metadata))
+            else:
+                res.append((route, metadata))
+    return res + tax_res
 
 
 class ErrorMessageLoader(FileSystemLoader):