diff piecrust/admin/views/preview.py @ 778:5e91bc0e3b4d

internal: Move admin panel code into the piecrust package.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 16 Jul 2016 15:02:24 +0200
parents foodtruck/views/preview.py@3885421c29a3
children 82509bce94ca
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/piecrust/admin/views/preview.py	Sat Jul 16 15:02:24 2016 +0200
@@ -0,0 +1,27 @@
+import os.path
+from flask import current_app, g, make_response
+from flask.ext.login import login_required
+from piecrust import CACHE_DIR
+from piecrust.app import PieCrustFactory
+from piecrust.serving.server import Server
+from ..blueprint import foodtruck_bp
+
+
+@foodtruck_bp.route('/site/<sitename>/')
+@login_required
+def preview_site_root(sitename):
+    return preview_site(sitename, '/')
+
+
+@foodtruck_bp.route('/site/<sitename>/<path:url>')
+@login_required
+def preview_site(sitename, url):
+    root_dir = g.sites.get_root_dir(sitename)
+    appfactory = PieCrustFactory(
+            root_dir,
+            cache_key='foodtruck',
+            debug=current_app.debug)
+    server = Server(appfactory,
+                    root_url='/site/%s/' % sitename)
+    return make_response(server._run_request)
+