annotate piecrust/admin/views/dashboard.py @ 1195:ae9387338db1 draft default tip

admin: add option to publish immediately
author Ludovic Chabant <ludovic@chabant.com>
date Fri, 30 Dec 2022 16:48:04 -0800
parents 0d699f04968c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 import os
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 import os.path
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 import logging
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 from flask import (
812
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
5 current_app, g, request,
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
6 render_template, url_for, redirect)
1151
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 989
diff changeset
7 from flask_login import login_user, logout_user, login_required
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
8 from piecrust.sources.fs import FSContentSourceBase
886
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
9 from piecrust.sources.interfaces import IInteractiveSource
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10 from piecrust.uriutil import split_uri
594
8f9cf1bcbe76 admin: Dashboard UI cleaning, re-use utility function for page summaries.
Ludovic Chabant <ludovic@chabant.com>
parents: 587
diff changeset
11 from ..textutil import text_preview
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
12 from ..blueprint import foodtruck_bp, load_user
961
b1a00c2c0c7f admin: Use URL routes for static assets.
Ludovic Chabant <ludovic@chabant.com>
parents: 960
diff changeset
13 from ..views import with_menu_context
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 logger = logging.getLogger(__name__)
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
19 @foodtruck_bp.route('/')
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20 @login_required
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 def index():
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22 data = {}
610
efc1dc916e7c admin: Configuration changes.
Ludovic Chabant <ludovic@chabant.com>
parents: 602
diff changeset
23 data['sources'] = []
886
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
24
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25 fs_endpoints = {}
886
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
26
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
27 site = g.site
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
28 pcapp = site.piecrust_app
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
29 for source in pcapp.sources:
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
30 if source.is_theme_source:
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 continue
886
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
32 if not isinstance(source, IInteractiveSource):
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
33 continue
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
34
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 src_data = {
812
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
36 'name': source.name,
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
37 'list_url': url_for('.list_source', source_name=source.name)}
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 data['sources'].append(src_data)
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
40 if isinstance(source, FSContentSourceBase):
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
41 fs_endpoints[source.fs_endpoint] = source
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
42
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
43 data['new_pages'] = []
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
44 data['edited_pages'] = []
770
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
45 data['misc_files'] = []
761
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
46 if site.scm:
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
47 st = site.scm.getStatus()
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
48 auto_formats = site.piecrust_app.config.get('site/auto_formats',
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
49 ['html'])
761
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
50 for p in st.new_files:
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
51 pd = _getWipData(p, fs_endpoints, auto_formats, site.piecrust_app)
761
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
52 if pd:
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
53 data['new_pages'].append(pd)
770
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
54 else:
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
55 data['misc_files'].append(p)
761
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
56 for p in st.edited_files:
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
57 pd = _getWipData(p, fs_endpoints, auto_formats, site.piecrust_app)
761
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
58 if pd:
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
59 data['edited_pages'].append(pd)
770
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
60 else:
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
61 data['misc_files'].append(p)
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
62
886
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
63 data['site_title'] = pcapp.config.get('site/title', "Unnamed Website")
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
64 data['url_publish'] = url_for('.publish')
886
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
65 data['url_preview'] = url_for('.preview_root_page')
960
8101692fdc11 admin: Add a "rebake preview assets" button to the dashboard.
Ludovic Chabant <ludovic@chabant.com>
parents: 935
diff changeset
66 data['url_bake_assets'] = url_for('.rebake_assets')
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
67
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
68 pub_tgts = pcapp.config.get('publish', {})
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
69 data['publish'] = {'targets': list(pub_tgts.keys())}
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
70
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
71 micropub = pcapp.config.get('micropub', {})
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
72 data['publish'] = micropub.get('publish_target')
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
73
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
74 with_menu_context(data)
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
75 return render_template('dashboard.html', **data)
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
76
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
77
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
78 def _getWipData(path, fs_endpoints, auto_formats, pcapp):
770
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
79 pathname, pathext = os.path.splitext(path)
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
80 if pathext.lstrip('.') not in auto_formats:
770
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
81 return None
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
82
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
83 source = None
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
84 for endpoint, s in fs_endpoints.items():
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
85 if path.startswith(endpoint):
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
86 source = s
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
87 break
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
88 if source is None:
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
89 return None
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
90
989
8adc27285d93 bake: Big pass on bake performance.
Ludovic Chabant <ludovic@chabant.com>
parents: 961
diff changeset
91 # TODO: this assumes FS sources, but this comes from the disk anyway.
935
7ecb946bfafd admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents: 927
diff changeset
92 full_path = os.path.join(pcapp.root_dir, path)
989
8adc27285d93 bake: Big pass on bake performance.
Ludovic Chabant <ludovic@chabant.com>
parents: 961
diff changeset
93 content_item = source.findContentFromSpec(full_path)
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
94 if content_item is None:
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
95 return None
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
96
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
97 page = pcapp.getPage(source, content_item)
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
98 uri = page.getUri()
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
99 _, slug = split_uri(pcapp, uri)
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
100
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
101 seg = page.getSegment()
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
102 if not seg:
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
103 return None
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
104
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
105 extract = text_preview(seg.content)
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
106 return {
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
107 'title': page.config.get('title'),
812
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
108 'slug': slug,
935
7ecb946bfafd admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents: 927
diff changeset
109 'url': url_for('.edit_page', url=slug),
812
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
110 'text': extract
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
111 }
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
112
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
113
960
8101692fdc11 admin: Add a "rebake preview assets" button to the dashboard.
Ludovic Chabant <ludovic@chabant.com>
parents: 935
diff changeset
114 @foodtruck_bp.route('/rebake_assets', methods=['POST'])
8101692fdc11 admin: Add a "rebake preview assets" button to the dashboard.
Ludovic Chabant <ludovic@chabant.com>
parents: 935
diff changeset
115 @login_required
8101692fdc11 admin: Add a "rebake preview assets" button to the dashboard.
Ludovic Chabant <ludovic@chabant.com>
parents: 935
diff changeset
116 def rebake_assets():
8101692fdc11 admin: Add a "rebake preview assets" button to the dashboard.
Ludovic Chabant <ludovic@chabant.com>
parents: 935
diff changeset
117 g.site.rebakeAssets()
8101692fdc11 admin: Add a "rebake preview assets" button to the dashboard.
Ludovic Chabant <ludovic@chabant.com>
parents: 935
diff changeset
118 return redirect(url_for('.index'))
8101692fdc11 admin: Add a "rebake preview assets" button to the dashboard.
Ludovic Chabant <ludovic@chabant.com>
parents: 935
diff changeset
119
8101692fdc11 admin: Add a "rebake preview assets" button to the dashboard.
Ludovic Chabant <ludovic@chabant.com>
parents: 935
diff changeset
120
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
121 @foodtruck_bp.route('/login', methods=['GET', 'POST'])
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
122 def login():
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
123 data = {}
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
124
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
125 if request.method == 'POST':
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
126 username = request.form.get('username')
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
127 password = request.form.get('password')
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
128 remember = request.form.get('remember')
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
129
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
130 user = load_user(username)
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
131 if user is not None and current_app.bcrypt:
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
132 if current_app.bcrypt.check_password_hash(user.password, password):
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
133 login_user(user, remember=bool(remember))
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
134 return redirect(url_for('.index'))
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
135 data['message'] = (
812
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
136 "User '%s' doesn't exist or password is incorrect." %
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
137 username)
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
138
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
139 return render_template('login.html', **data)
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
140
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
141
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
142 @foodtruck_bp.route('/logout')
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
143 @login_required
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
144 def logout():
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
145 logout_user()
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
146 return redirect(url_for('.index'))
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
147