Mercurial > piecrust2
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 |