排序

/rbac/templatetags/rbac.py

from django import template
from django.conf import settings
import re
from collections import  OrderedDict
register = template.Library()@register.inclusion_tag('rbac/menu.html')
def menu(request):ordered_dict=OrderedDict()menu_dict = request.session[settings.MENU_SESSION_KEY]# print(menu_dict,'111')ret=sorted(menu_dict,key=lambda x:menu_dict[x]['wight'],reverse=True)#俺排好序的 进行写   然后按 有序字典 写for i in ret:ordered_dict[i]=menu_dict[i]return {'menu_list': ordered_dict.values()}#返回有序字典

    for item in ordered_dict.values():for i in item['children']:if re.match(r'^{}$'.format(i['url']),request.path_info):i['class']='active'

 二级单选中展开

layout.html

<script>$('.multi-menu .title').click(function () {$(this).next().removeClass('hide');$(this).parent().siblings().find('.body').addClass('hide')})
</script>

可以写入menu.js

###########

init_permission.py

存放ssion

可以整合到一个for字典中

 首页导航

中间件中 写入

#路径导航列表

request.breadcumb_list=[{'title':'首页','url':'/index/'}]  这个只能针对首页

存入写title

应用

rbac/templatetags/rbac.py

@register.inclusion_tag('rbac/breadcrumb.html')
def breadcrumb(request):return {'breadcrumb_list':request.breadcrumb_list}

breadcrumb.html

<ol class="breadcrumb no-radius no-margin" style="border-bottom: 1px solid #ddd;">{% for i in breadcrumb_list %}{% if forloop.last %}<li class="active">{{ i.title }}</li>{% else %}<li><a href="{{ i.url }}">{{ i.title }}</a></li>{% endif %}{% endfor %}</ol>

权限控制到按钮级别

第一种写法

可以换成模版

在 web/templates/customer_list.html

{% extends 'layout.html' %}{% block content %}{% load rbac %}<div class="luffy-container"><div class="btn-group" style="margin: 5px 0">{#            {% if 'customer_add' in request.session.permission %}#}
            {% if request|has_permission:'customer_add' %}<a class="btn btn-default" href="/customer/add/"><i class="fa fa-plus-square" aria-hidden="true"></i> 添加客户</a>{% endif %}</div><table class="table table-bordered table-hover"><thead><tr><th>ID</th><th>客户姓名</th><th>年龄</th><th>邮箱</th><th>公司</th>{% if request|has_permission:'customer_edit' or request|has_permission:'customer_del' %}<th>选项</th>{% endif %}</tr></thead><tbody>{% for row in data_list %}<tr><td>{{ row.id }}</td><td>{{ row.name }}</td><td>{{ row.age }}</td><td>{{ row.email }}</td><td>{{ row.company }}</td>{% if request|has_permission:'customer_edit' or request|has_permission:'customer_del' %}<td>{% if request|has_permission:'customer_edit' %}<a style="color: #333333;" href="/customer/edit/{{ row.id }}/"><i class="fa fa-edit" aria-hidden="true"></i></a>{% endif %}{% if request|has_permission:'customer_del' %}<a style="color: #d9534f;" href="/customer/del/{{ row.id }}/"><iclass="fa fa-trash-o"></i></a>{% endif %}</td>{% endif %}</tr>{% endfor %}</tbody></table></div>
{% endblock %}

转载于:https://www.cnblogs.com/zaizai1573/p/10575760.html

crm 一级菜单排序,二级菜单选中并且展开,非菜单权限的归属,权限粒度控制到按钮级别...相关推荐

  1. HTML一级菜单和二级菜单区别,JavaScript点击一级菜单打开和关闭二级菜单

    [JavaScript点击一级菜单打开和关闭二级菜单] ``` Document #sub_menu_1,#sub_menu_2{ display: none; } ul li:hover{ curs ...

  2. jQuery一级菜单和二级菜单

    1.先做一级菜单,第一步设置body,把大概样子写出来. 2.第二步-1.用css设置通配符. 3.第二步-2.设置ul标签基础样式 . 4.第二步-3.设置类样式. 5.设置jquery内容的第一步 ...

  3. dw二级联动下拉菜单插件 宋君墨_Excel下拉菜单不会做?15秒教会你制作一二三级联动下拉菜单,从此做表不求人!...

    Hi,各位叨友们好呀!我是叨叨君~ 我们都知道,在使用Excel表格统计数据的时候,为了方便录入,通常会在Excel中设置下拉菜单,以便我们输入相同的内容. 那么,Excel中一级.二级.三级联动下拉 ...

  4. java web 树形管理_java web 后台树形菜单排序

    1.需求场景 数据库后台返回树形结构菜单,实现菜单排序. 2.项目环境 spring spring mvc mybatis  mysql 3.实现方法 对应的实体类 private int id;// ...

  5. vue实现下拉二级联动_select下拉菜单实现二级联动效果

    需求:建立年级.班级两个数据表,获取年级表信息,根据年级,获取相应的班级 效果图: 不完美的地方就是在不选择年级的时候,是不能选择任何班级的. 代码部分 首先是建立两个表的实体 需要注意的就是写注解了 ...

  6. html点击展开菜单,简单实现js点击展开二级菜单功能

    虽然,jQuery已经非常好用了,但是实际的开发项目中,还是有很多限制,比如项目组奇葩的要求,不能使用任何插件,当然,也是考虑插件占用资源,毕竟100+KB对与小型项目来说还是非常大的.我最近就遇到做 ...

  7. 制作下拉菜单(二级菜单)

    我们想实现下面这个二级菜单的效果,将鼠标放在一个视频教程的标签上,就会显示下面的二级菜单,不放的话就不显示,而且当鼠标放在二级菜单上二级菜单的字体会变色,如下图所示:  如果有二级菜单的,可以当成子标 ...

  8. phpcmsV9导航高亮:调用任意的一级栏目,如何让选中的二级子栏目实现高亮显示?

    PHPCMS 实现选中栏目高亮的多种情况和方法 在phpcms开发中,会遇到各种导航中一级栏目的高亮显示,比如:顶部导航.侧边栏导航.以及对应二级子栏目的高亮显示,这里,我们探讨其中的情况之一:&qu ...

  9. php 下拉菜单 不提交 选中的值,在html中怎样可以做到下拉菜单提交后保留选中值不返回默认值...

    这次给大家带来在html中怎样可以做到下拉菜单提交后保留选中值不返回默认值,在html中做到下拉菜单提交后保留选中值不返回默认值的注意事项有哪些,下面就是实战案例,一起来看一下. 代码如下: // 获 ...

最新文章

  1. 基于htmlparser实现网页内容解析
  2. C语言中不安全的函数
  3. 如何在家写出一份无懈可击的产品文档
  4. 实现接口与显示实现接口的区别
  5. 网络攻防第十一周作业
  6. Samba服务器简介及自动挂载配置案例
  7. 关于windows重装原先wubi安装的Ubuntu启动项消失的解决办法
  8. github 快速配置简易教程笔记
  9. varied字符串c语言,C语言输入输出问题解析研究.pdf
  10. confirm 调用ajax,jQuery ajax中使用confirm,确认是否删除的简单实例
  11. ad20/ad21/ad22学习笔记(基本包含一套流程)Altium Designer
  12. sunlight的中文_Diana Vickers的Sunlight中文歌词。
  13. linux设备/dev/dsp,/dev/mixer
  14. python数列求和_Python 数字求和
  15. python中scale啥意思_scale什么意思
  16. 将年月日成一年中第几天
  17. 小闫陪你入门 Java (二)
  18. 起点篇:跨入半导体行业,数字IC设计
  19. 没有基础半路学编程,靠谱吗?
  20. 《三十而已》出品方柠萌影业冲刺IPO,“爆剧制造机”如何度过“影视寒冬”?

热门文章

  1. [Golang] GoConvey测试框架使用指南
  2. g77,g95,gfortran的关系
  3. 在.Net framework中动态加载Assembly的loadFromRemoteSources配置
  4. 豪华奢侈的中国作家代表大会
  5. 为女儿示范的两张石膏像素描
  6. 菜鸟做设计必看!有关如何做设计的整体思路,以及能否综合的笔记
  7. RAPI简单说明及Sample Code
  8. java listen_Java进阶-IO基础
  9. kindle的xray怎么用_Xray使用的一些经验分享
  10. 道客巴巴vip账号共享2020_腾讯视频VIP怎么两个手机通用?