comparison piecrust/wsgiutil/__init__.py @ 935:7ecb946bfafd

admin: Lots of fixes for running the admin panel in a WSGI server. - Use new source APIs in the dashboard to open WIP files. - Fixed broken/outdated code in some views. - Fixed cases when Flask is not running at the root URL by using the `SCRIPT_NAME` variable somewhat more properly.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 04 Oct 2017 09:15:16 -0700
parents b4156f5d4368
children d0f86d9a9d40
comparison
equal deleted inserted replaced
934:98430e7143d2 935:7ecb946bfafd
1 import logging 1 import logging
2 from piecrust.serving.server import WsgiServer 2 from piecrust.serving.wrappers import get_piecrust_server
3 3
4 4
5 def _setup_logging(log_file, log_level, max_log_bytes, log_backup_count): 5 def _setup_logging(log_file, log_level, max_log_bytes, log_backup_count):
6 if log_file: 6 if log_file:
7 from logging.handlers import RotatingFileHandler 7 from logging.handlers import RotatingFileHandler
11 logging.getLogger().addHandler(handler) 11 logging.getLogger().addHandler(handler)
12 12
13 13
14 def get_app(root_dir, *, 14 def get_app(root_dir, *,
15 cache_key='prod', 15 cache_key='prod',
16 enable_debug_info=False, 16 serve_admin=False,
17 log_file=None, 17 log_file=None,
18 log_level=logging.INFO, 18 log_level=logging.INFO,
19 log_backup_count=0, 19 log_backup_count=0,
20 max_log_bytes=4096): 20 max_log_bytes=4096):
21 _setup_logging(log_file, log_level, max_log_bytes, log_backup_count) 21 _setup_logging(log_file, log_level, max_log_bytes, log_backup_count)
22 app = WsgiServer(root_dir, 22 app = get_piecrust_server(root_dir,
23 cache_key=cache_key, 23 serve_site=True,
24 enable_debug_info=enable_debug_info) 24 serve_admin=serve_admin,
25 cache_key=cache_key)
25 return app 26 return app
26 27
27 28
28 def get_admin_app(root_dir, *, 29 def get_admin_app(root_dir, *,
29 url_prefix='pc-admin', 30 cache_key='prod',
30 log_file=None, 31 log_file=None,
31 log_level=logging.INFO, 32 log_level=logging.INFO,
32 log_backup_count=0, 33 log_backup_count=0,
33 max_log_bytes=4096): 34 max_log_bytes=4096):
34 _setup_logging(log_file, log_level, max_log_bytes, log_backup_count) 35 _setup_logging(log_file, log_level, max_log_bytes, log_backup_count)
35 es = { 36 app = get_piecrust_server(root_dir,
36 'FOODTRUCK_ROOT': root_dir, 37 serve_site=False,
37 'FOODTRUCK_URL_PREFIX': url_prefix} 38 serve_admin=True,
38 from piecrust.admin.web import create_foodtruck_app 39 cache_key=cache_key)
39 app = create_foodtruck_app(es)
40 return app 40 return app
41 41