diff piecrust/data/base.py @ 430:21e26ed867b6

internal: Create full route metadata in one place. Instead of combining things at different moments to make up route metadata, build it once and for all up-front and use that.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 27 Jun 2015 08:27:35 -0700
parents f1b759c188b0
children 3aa174a7f3cf
line wrap: on
line diff
--- a/piecrust/data/base.py	Sat Jun 27 00:03:56 2015 -0700
+++ b/piecrust/data/base.py	Sat Jun 27 08:27:35 2015 -0700
@@ -2,6 +2,7 @@
 import time
 import logging
 from piecrust.data.assetor import Assetor
+from piecrust.routing import create_route_metadata
 from piecrust.uriutil import split_uri
 
 
@@ -154,12 +155,12 @@
         if self._route is None:
             # TODO: this is not quite correct, as we're missing parts of the
             #       route metadata if the current page is a taxonomy page.
-            self._route = page.app.getRoute(page.source.name,
-                                            page.source_metadata)
-            self._route_metadata = copy.deepcopy(page.source_metadata)
+            route_metadata = create_route_metadata(page)
+            self._route = page.app.getRoute(page.source.name, route_metadata)
+            self._route_metadata = route_metadata
             if self._route is None:
                 raise Exception("Can't get route for page: %s" % page.path)
-        return self._route.getUri(self._route_metadata, provider=page)
+        return self._route.getUri(self._route_metadata)
 
     def _loadCustom(self):
         page_url = self._get_uri()