Mercurial > piecrust2
comparison 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 |
comparison
equal
deleted
inserted
replaced
429:ca5a3c970263 | 430:21e26ed867b6 |
---|---|
11 BakeWorkerJob, LoadJobPayload, RenderFirstSubJobPayload, | 11 BakeWorkerJob, LoadJobPayload, RenderFirstSubJobPayload, |
12 BakeJobPayload, | 12 BakeJobPayload, |
13 JOB_LOAD, JOB_RENDER_FIRST, JOB_BAKE) | 13 JOB_LOAD, JOB_RENDER_FIRST, JOB_BAKE) |
14 from piecrust.chefutil import ( | 14 from piecrust.chefutil import ( |
15 format_timed_scope, format_timed) | 15 format_timed_scope, format_timed) |
16 from piecrust.routing import create_route_metadata | |
16 from piecrust.sources.base import ( | 17 from piecrust.sources.base import ( |
17 REALM_NAMES, REALM_USER, REALM_THEME) | 18 REALM_NAMES, REALM_USER, REALM_THEME) |
18 | 19 |
19 | 20 |
20 logger = logging.getLogger(__name__) | 21 logger = logging.getLogger(__name__) |
483 logger.debug("Ignoring %s because it had previous " | 484 logger.debug("Ignoring %s because it had previous " |
484 "errors." % fac.ref_spec) | 485 "errors." % fac.ref_spec) |
485 return False | 486 return False |
486 | 487 |
487 # Build the route metadata and find the appropriate route. | 488 # Build the route metadata and find the appropriate route. |
488 route_metadata = copy.deepcopy(fac.metadata) | 489 page = fac.buildPage() |
490 route_metadata = create_route_metadata(page) | |
489 if tax_info is not None: | 491 if tax_info is not None: |
490 tax = self.app.getTaxonomy(tax_info.taxonomy_name) | 492 tax = self.app.getTaxonomy(tax_info.taxonomy_name) |
491 route = self.app.getTaxonomyRoute(tax_info.taxonomy_name, | 493 route = self.app.getTaxonomyRoute(tax_info.taxonomy_name, |
492 tax_info.source_name) | 494 tax_info.source_name) |
493 | 495 |
499 assert route is not None | 501 assert route is not None |
500 | 502 |
501 # Figure out if this page is overriden by another previously | 503 # Figure out if this page is overriden by another previously |
502 # baked page. This happens for example when the user has | 504 # baked page. This happens for example when the user has |
503 # made a page that has the same page/URL as a theme page. | 505 # made a page that has the same page/URL as a theme page. |
504 page = fac.buildPage() | 506 uri = route.getUri(route_metadata) |
505 uri = route.getUri(route_metadata, provider=page) | |
506 override_entry = record.getOverrideEntry(page.path, uri) | 507 override_entry = record.getOverrideEntry(page.path, uri) |
507 if override_entry is not None: | 508 if override_entry is not None: |
508 override_source = self.app.getSource( | 509 override_source = self.app.getSource( |
509 override_entry.source_name) | 510 override_entry.source_name) |
510 if override_source.realm == fac.source.realm: | 511 if override_source.realm == fac.source.realm: |