changeset 392:e551a6918907

runserver: Fix auto-reloading, use 'dirtying' update by default. * Auto-reloading pages from disk is enabled again for the local server. * All servers (local and WSGI) now dirty all pages upon edit.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 14 Oct 2015 22:06:17 -0700
parents 2156d47b577f
children 3219f8dd7868
files wikked/commands/web.py wikked/web.py wikked/webimpl/__init__.py
diffstat 3 files changed, 11 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/wikked/commands/web.py	Wed Oct 14 20:55:58 2015 -0700
+++ b/wikked/commands/web.py	Wed Oct 14 22:06:17 2015 -0700
@@ -8,10 +8,6 @@
 logger = logging.getLogger(__name__)
 
 
-def autoreload_wiki_updater(wiki, url):
-    wiki.db.uncachePages(except_url=url, only_required=True)
-
-
 @register_command
 class RunServerCommand(WikkedCommand):
     def __init__(self):
@@ -87,7 +83,6 @@
             wikked.settings.WIKI_DEV_ASSETS = True
         if not ctx.args.no_update:
             wikked.settings.WIKI_AUTO_RELOAD = True
-            ctx.params.wiki_updater = autoreload_wiki_updater
 
         # Create/import the app.
         from wikked.web import app
--- a/wikked/web.py	Wed Oct 14 20:55:58 2015 -0700
+++ b/wikked/web.py	Wed Oct 14 22:06:17 2015 -0700
@@ -111,6 +111,13 @@
 app.wiki_params = WikiParameters(wiki_root)
 
 
+# Just uncache pages when the user has edited one.
+def autoreload_wiki_updater(wiki, url):
+    wiki.db.uncachePages(except_url=url, only_required=True)
+
+app.wiki_params.wiki_updater = autoreload_wiki_updater
+
+
 # Login extension.
 def user_loader(username):
     wiki = get_wiki()
--- a/wikked/webimpl/__init__.py	Wed Oct 14 20:55:58 2015 -0700
+++ b/wikked/webimpl/__init__.py	Wed Oct 14 22:06:17 2015 -0700
@@ -4,6 +4,7 @@
 import urllib.parse
 from wikked.utils import (
         get_absolute_url, PageNotFoundError, split_page_url, is_endpoint_url)
+from wikked.web import app
 
 
 logger = logging.getLogger(__name__)
@@ -46,8 +47,9 @@
 
 
 def get_page_or_raise(wiki, url, fields=None,
-                      check_perms=None, auto_reload=False):
-    if auto_reload and fields is not None:
+                      check_perms=None):
+    auto_reload = app.config.get('WIKI_AUTO_RELOAD', False)
+    if auto_reload is True and fields is not None:
         if 'path' not in fields:
             fields.append('path')
         if 'cache_time' not in fields: