changeset 108:5c24e8f8b095

Added support for the `force_resolve` flag.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 12 Nov 2013 13:52:01 -0800
parents 2654e243de8c
children f0172c5d8e2c
files manage.py wikked/views.py
diffstat 2 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/manage.py	Tue Nov 12 13:51:10 2013 -0800
+++ b/manage.py	Tue Nov 12 13:52:01 2013 -0800
@@ -64,10 +64,12 @@
 
 
 @manager.command
-def get(url):
+def get(url, resolve=False):
     """ Gets a page that matches the given URL.
     """
     page = wiki.getPage(url)
+    if resolve:
+        page._force_resolve = True
     print page.text
 
 
--- a/wikked/views.py	Tue Nov 12 13:51:10 2013 -0800
+++ b/wikked/views.py	Tue Nov 12 13:52:01 2013 -0800
@@ -58,17 +58,19 @@
         return data
 
 
-def get_page_or_none(url):
+def get_page_or_none(url, force_resolve=False):
     try:
         page = g.wiki.getPage(url)
+        if force_resolve:
+            page._force_resolve = True
         page._ensureData()
         return page
     except PageNotFoundError:
         return None
 
 
-def get_page_or_404(url, check_perms=DONT_CHECK):
-    page = get_page_or_none(url)
+def get_page_or_404(url, check_perms=DONT_CHECK, force_resolve=False):
+    page = get_page_or_none(url, force_resolve)
     if page is not None:
         if check_perms == CHECK_FOR_READ and not is_page_readable(page):
             abort(401)
@@ -181,7 +183,10 @@
 
 @app.route('/api/read/<path:url>')
 def api_read_page(url):
-    page = get_page_or_404(url, CHECK_FOR_READ)
+    page = get_page_or_404(
+            url, 
+            check_perms=CHECK_FOR_READ,
+            force_resolve=('force_resolve' in request.args))
     result = {'meta': get_page_meta(page), 'text': page.text}
     return make_auth_response(result)