changeset 105:986f399a1471

Added a `force_resolve` mode for pages, fixed a crash.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 12 Nov 2013 13:48:06 -0800
parents dfdfd092e250
children 212dfbb75031
files wikked/page.py
diffstat 1 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/wikked/page.py	Tue Nov 12 13:45:28 2013 -0800
+++ b/wikked/page.py	Tue Nov 12 13:48:06 2013 -0800
@@ -35,6 +35,7 @@
         self.wiki = wiki
         self.url = url
         self._data = None
+        self._force_resolve = False
 
     @property
     def path(self):
@@ -129,7 +130,7 @@
         self._ensureData()
 
         self._onExtendedDataLoading()
-        if self._data.has_extended_data:
+        if self._data.has_extended_data and not self._force_resolve:
             return
         
         try:
@@ -238,6 +239,8 @@
 
     def _loadData(self):
         db_obj = self._db_obj or self.wiki.db.getPage(self.url)
+        if db_obj is None:
+            raise Exception("Can't find page '%s' in the database. Please run `update` or `reset`." % self.url)
         data = self._loadFromDbObject(db_obj)
         self._db_obj = None
         return data
@@ -278,7 +281,7 @@
 
         data.local_links = [l.target_url for l in db_obj.links]
 
-        if db_obj.is_ready:
+        if db_obj.is_ready and not self._force_resolve:
             # If we have extended cache data from the database, we might as
             # well load it now too.
             data.text = db_obj.ready_text