comparison piecrust/admin/views/dashboard.py @ 886:dcdec4b951a1

admin: Get the admin panel working again.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 20 Jun 2017 21:13:08 -0700
parents 82509bce94ca
children 175d80cf75d7
comparison
equal deleted inserted replaced
885:13e8b50a2113 886:dcdec4b951a1
4 from flask import ( 4 from flask import (
5 current_app, g, request, 5 current_app, g, request,
6 render_template, url_for, redirect) 6 render_template, url_for, redirect)
7 from flask.ext.login import login_user, logout_user, login_required 7 from flask.ext.login import login_user, logout_user, login_required
8 from piecrust.configuration import parse_config_header 8 from piecrust.configuration import parse_config_header
9 from piecrust.rendering import QualifiedPage 9 from piecrust.sources.interfaces import IInteractiveSource
10 from piecrust.uriutil import split_uri 10 from piecrust.uriutil import split_uri
11 from ..textutil import text_preview 11 from ..textutil import text_preview
12 from ..blueprint import foodtruck_bp, load_user, after_this_request 12 from ..blueprint import foodtruck_bp, load_user, after_this_request
13 from ..views import with_menu_context 13 from ..views import with_menu_context
14 14
19 @foodtruck_bp.route('/') 19 @foodtruck_bp.route('/')
20 @login_required 20 @login_required
21 def index(): 21 def index():
22 data = {} 22 data = {}
23 data['sources'] = [] 23 data['sources'] = []
24
25 fs_endpoints = {}
26
24 site = g.site 27 site = g.site
25 fs_endpoints = {} 28 pcapp = site.piecrust_app
26 for source in site.piecrust_app.sources: 29 for source in pcapp.sources:
27 if source.is_theme_source: 30 if source.is_theme_source:
28 continue 31 continue
29 facs = source.getPageFactories() 32 if not isinstance(source, IInteractiveSource):
33 continue
34
35 items = source.getAllContents()
30 src_data = { 36 src_data = {
31 'name': source.name, 37 'name': source.name,
32 'list_url': url_for('.list_source', source_name=source.name), 38 'list_url': url_for('.list_source', source_name=source.name),
33 'page_count': len(facs)} 39 'page_count': len(items)}
34 data['sources'].append(src_data) 40 data['sources'].append(src_data)
35 41
36 fe = getattr(source, 'fs_endpoint', None) 42 fe = getattr(source, 'fs_endpoint', None)
37 if fe: 43 if fe:
38 fs_endpoints[fe] = source 44 fs_endpoints[fe] = source
53 if pd: 59 if pd:
54 data['edited_pages'].append(pd) 60 data['edited_pages'].append(pd)
55 else: 61 else:
56 data['misc_files'].append(p) 62 data['misc_files'].append(p)
57 63
58 data['site_name'] = site.name 64 data['site_title'] = pcapp.config.get('site/title', "Unnamed Website")
59 data['site_title'] = site.piecrust_app.config.get('site/title', site.name)
60 data['url_publish'] = url_for('.publish') 65 data['url_publish'] = url_for('.publish')
61 data['url_preview'] = url_for('.preview_site_root', sitename=site.name) 66 data['url_preview'] = url_for('.preview_root_page')
62
63 data['sites'] = []
64 for s in g.sites.getall():
65 data['sites'].append({
66 'name': s.name,
67 'display_name': s.piecrust_app.config.get('site/title'),
68 'url': url_for('.index', site_name=s.name)
69 })
70 data['needs_switch'] = len(g.config.get('sites')) > 1
71 data['url_switch'] = url_for('.switch_site')
72 67
73 with_menu_context(data) 68 with_menu_context(data)
74 return render_template('dashboard.html', **data) 69 return render_template('dashboard.html', **data)
75 70
76 71