comparison piecrust/admin/views/menu.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 foodtruck/views/menu.py@3885421c29a3
children c7393ce2dde7
comparison
equal deleted inserted replaced
777:8d633ca59bc5 778:5e91bc0e3b4d
1 from flask import g, request, url_for
2 from flask.ext.login import current_user
3
4
5 def get_menu_context():
6 entries = []
7 entries.append({
8 'url': '/',
9 'title': "Dashboard",
10 'icon': 'speedometer'})
11
12 site = g.site.piecrust_app
13 for s in site.sources:
14 if s.is_theme_source:
15 continue
16
17 source_icon = s.config.get('admin_icon', 'document')
18 if s.name == 'pages':
19 source_icon = 'document-text'
20 elif 'blog' in s.name:
21 source_icon = 'filing'
22
23 url_write = url_for('.write_page', source_name=s.name)
24 url_listall = url_for('.list_source', source_name=s.name)
25
26 ctx = {
27 'url': url_listall,
28 'title': s.name,
29 'icon': source_icon,
30 'entries': [
31 {'url': url_listall, 'title': "List All"},
32 {'url': url_write, 'title': "Write New"}
33 ]
34 }
35 entries.append(ctx)
36
37 entries.append({
38 'url': url_for('.publish'),
39 'title': "Publish",
40 'icon': 'upload'})
41
42 # entries.append({
43 # 'url': url_for('.settings'),
44 # 'title': "Settings",
45 # 'icon': 'gear-b'})
46
47 for e in entries:
48 needs_more_break = False
49 if 'entries' in e:
50 for e2 in e['entries']:
51 if e2['url'] == request.path:
52 e['open'] = True
53 e2['active'] = True
54 needs_more_break = True
55 break
56 if needs_more_break:
57 break
58
59 if e['url'] == request.path:
60 e['active'] = True
61 break
62
63 data = {'entries': entries,
64 'user': current_user,
65 'url_logout': url_for('.logout')}
66 return data
67
68