changeset 785:661f7ba15762

bug: Fix possible crash with overlapping pages. Code was incorrectly refactored from a previous version.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 31 Aug 2016 20:48:29 -0700
parents 6d8fe8e93a91
children 97c1dc568810
files piecrust/generation/base.py piecrust/generation/taxonomy.py
diffstat 2 files changed, 9 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/piecrust/generation/base.py	Wed Aug 17 22:01:26 2016 -0700
+++ b/piecrust/generation/base.py	Wed Aug 31 20:48:29 2016 -0700
@@ -1,3 +1,4 @@
+import logging
 from werkzeug.utils import cached_property
 from piecrust.baking.records import BakeRecordEntry
 from piecrust.baking.worker import save_factory, JOB_BAKE
@@ -6,6 +7,9 @@
 from piecrust.sources.pageref import PageRef
 
 
+logger = logging.getLogger(__name__)
+
+
 class InvalidRecordExtraKey(Exception):
     pass
 
@@ -61,13 +65,13 @@
         if override_entry is not None:
             override_source = self.app.getSource(
                     override_entry.source_name)
-            if override_source.realm == fac.source.realm:
-                cur_entry.errors.append(
+            if override_source.realm == page_fac.source.realm:
+                entry.errors.append(
                         "Page '%s' maps to URL '%s' but is overriden "
                         "by page '%s'." %
-                        (fac.ref_spec, uri, override_entry.path))
-                logger.error(cur_entry.errors[-1])
-            cur_entry.flags |= BakeRecordEntry.FLAG_OVERRIDEN
+                        (page_fac.ref_spec, uri, override_entry.path))
+                logger.error(entry.errors[-1])
+            entry.flags |= BakeRecordEntry.FLAG_OVERRIDEN
             return
 
         route_index = self._app.routes.index(route)
--- a/piecrust/generation/taxonomy.py	Wed Aug 17 22:01:26 2016 -0700
+++ b/piecrust/generation/taxonomy.py	Wed Aug 31 20:48:29 2016 -0700
@@ -8,7 +8,6 @@
         PaginationFilter, SettingFilterClause,
         page_value_accessor)
 from piecrust.generation.base import PageGenerator, InvalidRecordExtraKey
-from piecrust.sources.pageref import PageRef, PageNotFoundError
 
 
 logger = logging.getLogger(__name__)