comparison foodtruck/views/preview.py @ 772:3885421c29a3

admin: Make the whole FoodTruck site into a blueprint. This makes it possible to use an app factory, which makes it easier to write unit tests.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 03 Jul 2016 07:54:54 -0700
parents 89ca8cdab020
children
comparison
equal deleted inserted replaced
771:673979a5d548 772:3885421c29a3
1 import os.path 1 import os.path
2 from flask import g, make_response 2 from flask import current_app, g, make_response
3 from flask.ext.login import login_required 3 from flask.ext.login import login_required
4 from piecrust import CACHE_DIR 4 from piecrust import CACHE_DIR
5 from piecrust.app import PieCrustFactory 5 from piecrust.app import PieCrustFactory
6 from piecrust.serving.server import Server 6 from piecrust.serving.server import Server
7 from ..web import app 7 from ..blueprint import foodtruck_bp
8 8
9 9
10 @app.route('/site/<sitename>/') 10 @foodtruck_bp.route('/site/<sitename>/')
11 @login_required 11 @login_required
12 def preview_site_root(sitename): 12 def preview_site_root(sitename):
13 return preview_site(sitename, '/') 13 return preview_site(sitename, '/')
14 14
15 15
16 @app.route('/site/<sitename>/<path:url>') 16 @foodtruck_bp.route('/site/<sitename>/<path:url>')
17 @login_required 17 @login_required
18 def preview_site(sitename, url): 18 def preview_site(sitename, url):
19 root_dir = g.sites.get_root_dir(sitename) 19 root_dir = g.sites.get_root_dir(sitename)
20 appfactory = PieCrustFactory( 20 appfactory = PieCrustFactory(
21 root_dir, 21 root_dir,
22 cache_key='foodtruck', 22 cache_key='foodtruck',
23 debug=app.debug) 23 debug=current_app.debug)
24 server = Server(appfactory, 24 server = Server(appfactory,
25 root_url='/site/%s/' % sitename) 25 root_url='/site/%s/' % sitename)
26 return make_response(server._run_request) 26 return make_response(server._run_request)
27 27
28