From 7ccbe8f1f2aa5fd709f9299edd97115040fc724d Mon Sep 17 00:00:00 2001 From: wan wan Date: Mon, 28 Jun 2021 10:57:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A6=82=E6=9E=9Cmenu=5Fdisplay=5Fadmin=5Fskip?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E4=B8=BATrue=E5=B9=B6=E4=B8=94=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=98=AF=E7=AE=A1=E7=90=86=E5=91=98=EF=BC=8C=E8=B7=B3?= =?UTF-8?q?=E8=BF=87=E8=8F=9C=E5=8D=95=E6=98=BE=E7=A4=BA=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simpleui/templates/admin/index.html | 2 +- simpleui/templatetags/simpletags.py | 30 ++++++++++++++++++----------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/simpleui/templates/admin/index.html b/simpleui/templates/admin/index.html index 33860a7..4aa84df 100755 --- a/simpleui/templates/admin/index.html +++ b/simpleui/templates/admin/index.html @@ -50,7 +50,7 @@ {% block menus %} {% autoescape off %} - {% menus %} + {% menus req=request %} {% endautoescape %} {% endblock %}
diff --git a/simpleui/templatetags/simpletags.py b/simpleui/templatetags/simpletags.py index 3653e50..8b45d3b 100644 --- a/simpleui/templatetags/simpletags.py +++ b/simpleui/templatetags/simpletags.py @@ -178,7 +178,12 @@ def format_table(d): @register.simple_tag(takes_context=True) -def menus(context, _get_config=None): +def menus(context, _get_config=None,**kwargs): + #获取request对象 + is_superuser_flag = False + req = kwargs.get("req",None) + if req: + is_superuser_flag = req.user.is_superuser data = [] # return request.user.has_perm("%s.%s" % (opts.app_label, codename)) @@ -244,16 +249,19 @@ def menus(context, _get_config=None): else: data = config.get('menus') - # 获取侧边栏排序, 如果设置了就按照设置的内容排序, 留空则表示默认排序以及全部显示 - if config.get('menu_display') is not None: - display_data = list() - for _app in data: - if _app['name'] not in config.get('menu_display'): - continue - _app['_weight'] = config.get('menu_display').index(_app['name']) - display_data.append(_app) - display_data.sort(key=lambda x: x['_weight']) - data = display_data + #管理员menu_display_admin_skip 设置为True,就跳过菜单显示过滤 + if is_superuser_flag and (config.get("menu_display_admin_skip") is False or config.get("menu_display_admin_skip") is None): + # 获取侧边栏排序, 如果设置了就按照设置的内容排序, 留空则表示默认排序以及全部显示 + if config.get('menu_display') is not None: + display_data = list() + for _app in data: + if _app['name'] not in config.get('menu_display'): + continue + _app['_weight'] = config.get('menu_display').index(_app['name']) + display_data.append(_app) + display_data.sort(key=lambda x: x['_weight']) + data = display_data + # 给每个菜单增加一个唯一标识,用于tab页判断 eid = 1000 -- Gitee