diff piecrust/baking/baker.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 ed5ccd4cce49
children aefe70229fdd
line wrap: on
line diff
--- a/piecrust/baking/baker.py	Sat Jun 27 00:03:56 2015 -0700
+++ b/piecrust/baking/baker.py	Sat Jun 27 08:27:35 2015 -0700
@@ -13,6 +13,7 @@
         JOB_LOAD, JOB_RENDER_FIRST, JOB_BAKE)
 from piecrust.chefutil import (
         format_timed_scope, format_timed)
+from piecrust.routing import create_route_metadata
 from piecrust.sources.base import (
         REALM_NAMES, REALM_USER, REALM_THEME)
 
@@ -485,7 +486,8 @@
             return False
 
         # Build the route metadata and find the appropriate route.
-        route_metadata = copy.deepcopy(fac.metadata)
+        page = fac.buildPage()
+        route_metadata = create_route_metadata(page)
         if tax_info is not None:
             tax = self.app.getTaxonomy(tax_info.taxonomy_name)
             route = self.app.getTaxonomyRoute(tax_info.taxonomy_name,
@@ -501,8 +503,7 @@
         # Figure out if this page is overriden by another previously
         # baked page. This happens for example when the user has
         # made a page that has the same page/URL as a theme page.
-        page = fac.buildPage()
-        uri = route.getUri(route_metadata, provider=page)
+        uri = route.getUri(route_metadata)
         override_entry = record.getOverrideEntry(page.path, uri)
         if override_entry is not None:
             override_source = self.app.getSource(