Mercurial > piecrust2
annotate piecrust/admin/blueprint.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 | |
children | a9f4a6e60b0b |
rev | line source |
---|---|
778
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
1 import os |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
2 import os.path |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
3 import time |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
4 import logging |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
5 from flask import Blueprint, current_app, g, request, render_template |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
6 from .configuration import ( |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
7 FoodTruckConfigNotFoundError, get_foodtruck_config) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
8 from .sites import FoodTruckSites, InvalidSiteError |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
9 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
10 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
11 logger = logging.getLogger(__name__) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
12 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
13 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
14 # Prepare the Login extension. |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
15 from flask.ext.login import LoginManager, UserMixin |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
16 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
17 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
18 class User(UserMixin): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
19 def __init__(self, uid, pwd): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
20 self.id = uid |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
21 self.password = pwd |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
22 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
23 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
24 def load_user(user_id): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
25 admin_id = g.config.get('security/username') |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
26 if admin_id == user_id: |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
27 admin_pwd = g.config.get('security/password') |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
28 return User(admin_id, admin_pwd) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
29 return None |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
30 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
31 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
32 login_manager = LoginManager() |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
33 login_manager.login_view = 'login' |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
34 login_manager.user_loader(load_user) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
35 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
36 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
37 def record_login_manager(state): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
38 if state.app.secret_key == 'temp-key': |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
39 def _handler(): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
40 raise FoodTruckConfigNotFoundError() |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
41 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
42 logger.debug("No secret key found, disabling website login.") |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
43 login_manager.unauthorized_handler(_handler) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
44 login_manager.login_view = None |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
45 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
46 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
47 # Setup Bcrypt. |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
48 from .bcryptfallback import Bcrypt |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
49 bcrypt_ext = Bcrypt() |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
50 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
51 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
52 def record_bcrypt(state): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
53 if (getattr(Bcrypt, 'is_fallback_bcrypt', None) is True and |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
54 not state.app.config.get('FOODTRUCK_CMDLINE_MODE', False)): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
55 raise Exception( |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
56 "You're running FoodTruck outside of `chef`, and will need to " |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
57 "install Flask-Bcrypt to get more proper security.") |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
58 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
59 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
60 # Create the FoodTruck blueprint. |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
61 foodtruck_bp = Blueprint( |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
62 'FoodTruck', __name__, |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
63 template_folder='templates', |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
64 static_folder='static') |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
65 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
66 foodtruck_bp.record(record_login_manager) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
67 foodtruck_bp.record(record_bcrypt) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
68 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
69 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
70 def after_this_request(f): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
71 if not hasattr(g, 'after_request_callbacks'): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
72 g.after_request_callbacks = [] |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
73 g.after_request_callbacks.append(f) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
74 return f |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
75 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
76 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
77 class LazySomething(object): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
78 def __init__(self, factory): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
79 self._factory = factory |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
80 self._something = None |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
81 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
82 def __getattr__(self, name): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
83 if self._something is not None: |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
84 return getattr(self._something, name) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
85 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
86 self._something = self._factory() |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
87 return getattr(self._something, name) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
88 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
89 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
90 @foodtruck_bp.before_request |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
91 def _setup_foodtruck_globals(): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
92 def _get_config(): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
93 admin_root = current_app.config['FOODTRUCK_ROOT'] |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
94 procedural_config = current_app.config['FOODTRUCK_PROCEDURAL_CONFIG'] |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
95 return get_foodtruck_config(admin_root, procedural_config) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
96 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
97 def _get_sites(): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
98 names = g.config.get('sites') |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
99 if not names or not isinstance(names, dict): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
100 raise InvalidSiteError( |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
101 "No sites are defined in the configuration file.") |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
102 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
103 current = request.cookies.get('foodtruck_site_name') |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
104 if current is not None and current not in names: |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
105 current = None |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
106 if current is None: |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
107 current = next(iter(names.keys())) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
108 s = FoodTruckSites(g.config, current) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
109 return s |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
110 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
111 def _get_current_site(): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
112 return g.sites.get() |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
113 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
114 g.config = LazySomething(_get_config) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
115 g.sites = LazySomething(_get_sites) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
116 g.site = LazySomething(_get_current_site) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
117 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
118 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
119 @foodtruck_bp.after_request |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
120 def _call_after_request_callbacks(response): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
121 for callback in getattr(g, 'after_request_callbacks', ()): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
122 callback(response) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
123 return response |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
124 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
125 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
126 @foodtruck_bp.errorhandler |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
127 def _on_error(ex): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
128 logging.exception(ex) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
129 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
130 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
131 @foodtruck_bp.app_template_filter('iso8601') |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
132 def timestamp_to_iso8601(t): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
133 t = time.localtime(t) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
134 return time.strftime('%Y-%m-%dT%H:%M:%SZ', t) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
135 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
136 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
137 @foodtruck_bp.app_template_filter('datetime') |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
138 def timestamp_to_datetime(t, fmt=None): |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
139 fmt = fmt or '%x' |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
140 t = time.localtime(t) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
141 return time.strftime(fmt, t) |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
142 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
143 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
144 import piecrust.admin.views.create # NOQA |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
145 import piecrust.admin.views.dashboard # NOQA |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
146 import piecrust.admin.views.edit # NOQA |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
147 import piecrust.admin.views.menu # NOQA |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
148 import piecrust.admin.views.preview # NOQA |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
149 import piecrust.admin.views.publish # NOQA |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
150 import piecrust.admin.views.sources # NOQA |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
151 |
5e91bc0e3b4d
internal: Move admin panel code into the piecrust package.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
152 |