Mercurial > piecrust2
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/piecrust/admin/views/menu.py Sat Jul 16 15:02:24 2016 +0200 @@ -0,0 +1,68 @@ +from flask import g, request, url_for +from flask.ext.login import current_user + + +def get_menu_context(): + entries = [] + entries.append({ + 'url': '/', + 'title': "Dashboard", + 'icon': 'speedometer'}) + + site = g.site.piecrust_app + for s in site.sources: + if s.is_theme_source: + continue + + source_icon = s.config.get('admin_icon', 'document') + if s.name == 'pages': + source_icon = 'document-text' + elif 'blog' in s.name: + source_icon = 'filing' + + url_write = url_for('.write_page', source_name=s.name) + url_listall = url_for('.list_source', source_name=s.name) + + ctx = { + 'url': url_listall, + 'title': s.name, + 'icon': source_icon, + 'entries': [ + {'url': url_listall, 'title': "List All"}, + {'url': url_write, 'title': "Write New"} + ] + } + entries.append(ctx) + + entries.append({ + 'url': url_for('.publish'), + 'title': "Publish", + 'icon': 'upload'}) + + # entries.append({ + # 'url': url_for('.settings'), + # 'title': "Settings", + # 'icon': 'gear-b'}) + + for e in entries: + needs_more_break = False + if 'entries' in e: + for e2 in e['entries']: + if e2['url'] == request.path: + e['open'] = True + e2['active'] = True + needs_more_break = True + break + if needs_more_break: + break + + if e['url'] == request.path: + e['active'] = True + break + + data = {'entries': entries, + 'user': current_user, + 'url_logout': url_for('.logout')} + return data + +