From 8933b14b9c04aada954972749241e6d37d95d82c Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 24 Dec 2019 09:01:12 +0800 Subject: [PATCH 1/7] add menu --- safesite/views.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/safesite/views.py b/safesite/views.py index aedefa18..6a3a6ccc 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -4564,9 +4564,9 @@ def apitool(req): if req.GET.get('company'): objs = objs.filter(usecomp__partid=req.GET.get('company')) for i in objs: - menulist = i.menulink.split(',') + menulist = i.menulist menulist.append(menu) - if menu == '30': + if menu == 30: company = Partment.objects.get(partid=req.GET.get('company')) objs = Map.objects.filter(usecomp=company) if objs.exists(): @@ -4574,8 +4574,7 @@ def apitool(req): else: Map.objects.create( name='默认地图', pic='/static/safesite/mystatic/images/snc.jpg', usecomp=company, default=1) - newlist = list(set(menulist)) - i.menulink = ','.join(newlist) + i.menulist = list(set(menulist)) i.save() return JsonResponse({"code": 1}) elif a == 'correction': From 9cd9836656421d329cd00e88a8d50f0188fcc064 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 24 Dec 2019 14:00:05 +0800 Subject: [PATCH 2/7] add company menulist bug --- safesite/views.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/safesite/views.py b/safesite/views.py index 6a3a6ccc..11379baf 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -3656,11 +3656,11 @@ def apicompany(req): y.save() part = Partment.objects.get(partid=y.partid) Group.objects.create( - groupname='超管', grouptype=0, usecomp=part, menulink=menurights) + groupname='超管', grouptype=0, usecomp=part, menulist=menurights) Group.objects.create( - groupname='安全员', grouptype=1, usecomp=part, menulink=menurights) + groupname='安全员', grouptype=1, usecomp=part, menulist=menurights) Group.objects.create( - groupname='全体用户', grouptype=3, usecomp=part, menulink=menurights) + groupname='全体用户', grouptype=3, usecomp=part, menulist=menurights) z = Group(groupname='主管', grouptype=2, usecomp=part, menulist=menurights) z.save() @@ -4714,8 +4714,9 @@ def apitool(req): return JsonResponse({"code": 1}) elif a == 'correct_menulist': for i in Group.objects.all(): - i.menulist = list(set(list(filter(None, i.menulink.split(','))))) - i.save() + if i.menulink: + i.menulist = list(set(list(filter(None, i.menulink.split(','))))) + i.save() return JsonResponse({"code": 1}) From 3453a33f0c3b86516e61cbd0915d7b81baa7e7fe Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 25 Dec 2019 13:39:18 +0800 Subject: [PATCH 3/7] button control --- safesite/admin.py | 9 +++ safesite/models.py | 29 ++++++---- safesite/static/safesite/mystatic/js/util.js | 3 + safesite/templates/examtest.html | 2 +- safesite/templates/examtestdetail.html | 4 ++ safesite/templates/rights.html | 2 +- safesite/templates/trouble.html | 59 +++++++++++--------- safesite/views.py | 15 ++++- 8 files changed, 81 insertions(+), 42 deletions(-) diff --git a/safesite/admin.py b/safesite/admin.py index 47bc150d..8f8beaad 100644 --- a/safesite/admin.py +++ b/safesite/admin.py @@ -6,3 +6,12 @@ admin.site.register(models.Trouble) admin.site.register(models.Dicclass) admin.site.register(models.Dickey) admin.site.register(models.Partment) + +@admin.register(models.Menu) +class Menuadmin(admin.ModelAdmin): + list_display = ('menuname','menucode','type','url') + list_display_links = ('menuname',) + def formfield_for_foreignkey(self, db_field, request, **kwargs): + if db_field.name == "parentid": + kwargs["queryset"] = models.Menu.objects.filter(type=1) + return super().formfield_for_foreignkey(db_field, request, **kwargs) \ No newline at end of file diff --git a/safesite/models.py b/safesite/models.py index 441d4328..f9e9a10e 100644 --- a/safesite/models.py +++ b/safesite/models.py @@ -372,17 +372,26 @@ class Groupuser2(models.Model): # 比较好的方式 class Menu(models.Model): # 菜单 - menuid = models.AutoField(primary_key=True) - menuname = models.CharField(max_length=30, blank=True, null=True) - menucode = models.CharField(max_length=30, blank=True, null=True) - url = models.CharField(max_length=30, blank=True, null=True) - detail = models.CharField(max_length=100, blank=True, null=True) + type_choices = ( + (1, '菜单'), + (2, '按钮'), + ) + menuid = models.AutoField(primary_key=True,verbose_name='ID') + menuname = models.CharField(max_length=30, blank=True, null=True,verbose_name='名称') + menucode = models.CharField(max_length=30, blank=True, null=True,verbose_name='菜单标识') + url = models.CharField(max_length=30, blank=True, null=True,verbose_name='操作地址') + detail = models.CharField(max_length=100, blank=True, null=True,verbose_name='描述') parentid = models.ForeignKey( - 'self', blank=True, null=True, on_delete=models.CASCADE) - icon = models.CharField(max_length=100, blank=True, null=True) - sortnum = models.IntegerField(default=1) - deletemark = models.IntegerField(default=1) - type = models.IntegerField(default=1)#1是菜单,2是按钮 + 'self', blank=True, null=True, on_delete=models.CASCADE,verbose_name='上级') + icon = models.CharField(max_length=100, blank=True, null=True,verbose_name='图标') + sortnum = models.IntegerField(default=1,verbose_name='排序号') + deletemark = models.IntegerField(default=1,verbose_name='删除标记') + type = models.IntegerField(default=1,choices=type_choices,verbose_name='类型')#1是菜单,2是按钮 + class Meta: + verbose_name = '菜单&按钮' + verbose_name_plural = "菜单&按钮" + def __str__(self): + return self.menuname+self.menucode class Yjyc(models.Model): # 预警预测表 diff --git a/safesite/static/safesite/mystatic/js/util.js b/safesite/static/safesite/mystatic/js/util.js index 8053b121..28bcd191 100644 --- a/safesite/static/safesite/mystatic/js/util.js +++ b/safesite/static/safesite/mystatic/js/util.js @@ -164,6 +164,9 @@ function convertmenu(rows) { var row = rows[i]; if (row.parentid == node.id) { var child = { id: row.menuid, text: row.menuname, attributes: row.url, iconCls: row.icon, checked: row.checked }; + if (row.type!=1){ + node.state = 'closed' + } if (node.children) { node.children.push(child); } else { diff --git a/safesite/templates/examtest.html b/safesite/templates/examtest.html index 863f87d9..a2424309 100644 --- a/safesite/templates/examtest.html +++ b/safesite/templates/examtest.html @@ -125,7 +125,7 @@ var row = $('#kstable').datagrid('getSelected'); if (row) { var url = 'html/examtest/detail/' + row.id - opendg('查看详情',url) + opendg('查看详情',url,1000) } else { $.messager.alert('提示', '请选择一行数据!'); } } diff --git a/safesite/templates/examtestdetail.html b/safesite/templates/examtestdetail.html index c20759ff..a59093d8 100644 --- a/safesite/templates/examtestdetail.html +++ b/safesite/templates/examtestdetail.html @@ -75,6 +75,9 @@ 得分 + + 参考时间 + 用时 @@ -98,6 +101,7 @@ 已参加 {{/if}} {{$value.score}} + {{$value.starttime}} {{$value.took}} 点击查看 diff --git a/safesite/templates/rights.html b/safesite/templates/rights.html index 5e7462d0..26eddb8f 100644 --- a/safesite/templates/rights.html +++ b/safesite/templates/rights.html @@ -14,7 +14,7 @@ animate: true, checkbox: true, lines: true, - cascadeCheck :false, + cascadeCheck :true, loadFilter: function (rows) { var rows = convertmenu(rows) return rows; diff --git a/safesite/templates/trouble.html b/safesite/templates/trouble.html index 67cda019..da902f1e 100644 --- a/safesite/templates/trouble.html +++ b/safesite/templates/trouble.html @@ -10,17 +10,27 @@ 详细筛选
- + {% load myfilter %} + {% if request|has_permission:'b_trouble_add' %} 新增 + {% endif %} 处理 删除 对标 查看详情 + + {% if request|has_permission:'b_trouble_import' %} 导入待整改隐患 + {% endif %} + {% if request|has_permission:'b_trouble_exportdoc' %} 导出Word + {% endif %} + + {% if request|has_permission:'b_trouble_exportxls' %} 导出Excel + {% endif %}
@@ -58,7 +68,7 @@
-

请按模板录入后导入

点击下载模板

@@ -229,31 +239,26 @@ data-options="iconCls:'fa-upload',resizable:true,modal:true,closed:true,border:f url: 'getdickey?dicclass=19&a=combobox', editable: false, }); - $.get('parthandle?a=tree',function(res){ - var data = convert(res); - $("#sfxbm,#szgbm").combotree().combotree('loadData',data); - }) - // $("#sfxbm,#szgbm").combotree({ - // url: 'parthandle?a=tree', - // editable: false, - // loadFilter: function (rows) { - // return convert(rows); - // }, - // // formatter: function (node) { - // // var s = node.text; - // // if (node.children) { - // // s += ' (' + node.children.length + ')'; - // // } - // // return s; - // // }, - // // onSelect: function (node) { - // // $('#sfxr').combobox({ - // // url: 'getuser?partid=' + node.id + '&a=combobox', - // // editable: false, - // // }); - // // } - // }); - + // $.get('parthandle?a=tree',function(res){ + // var data = convert(res); + // $('#sfxbm,#szgbm').combotree(); + // $("#sfxbm").combotree('loadData',data); + // $("#szgbm").combotree('loadData',data); + // }) + $("#sfxbm").combotree({ + url: 'parthandle?a=tree', + editable: false, + loadFilter: function (rows) { + return convert(rows); + }, + }); + $("#szgbm").combotree({ + url: 'parthandle?a=tree', + editable: false, + loadFilter: function (rows) { + return convert(rows); + }, + }); function detailyh() { var row = $('#yhtable').datagrid('getSelected'); if (row) { diff --git a/safesite/views.py b/safesite/views.py index 11379baf..b88b1e9f 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -831,7 +831,7 @@ def apirights(req): allrights = Group.objects.get( usecomp__partid=companyid, grouptype=0).menulist menus = Menu.objects.exclude(menuid__in=[11, 9]).filter(menuid__in=allrights, deletemark=1).order_by( - 'menuid').values('menuid', 'menucode', 'parentid', 'url', 'menuname', 'icon').distinct() + 'menuid').values('menuid', 'menucode', 'parentid', 'url', 'menuname', 'icon','type').distinct() for i in menus: if i['menuid'] in haverights: i['checked'] = True @@ -4718,7 +4718,16 @@ def apitool(req): i.menulist = list(set(list(filter(None, i.menulink.split(','))))) i.save() return JsonResponse({"code": 1}) - + elif a == 'correct_menuhas': + buttons = Menu.objects.filter(type=2) + for group in Group.objects.filter(grouptype=0): + menulist = group.menulist + for button in buttons: + if button.parentid.menuid in menulist: #如果菜单在所拥有权限内 + menulist.append(button.menuid) + group.menulist = list(set(menulist)) + group.save() + return JsonResponse({"code": 1}) def apinotice(req): @@ -5875,7 +5884,7 @@ def apiexamtest(req): a = ExamTest.objects.filter(id=id).values('id', 'num', 'name', 'starttime', 'endtime', 'duration', 'totalscore', 'passscore', 'exampaper__total', 'createtime', 'state', 'exampaper__name', 'createuser__name', 'type', 'qrcode')[0] objs = ExamTestDetail.objects.filter(examtest__id=id).order_by('-score').values( - 'id', 'user__name', 'user__ubelongpart__partname', 'took', 'score', 'ison', 'passcode') + 'id', 'user__name', 'user__ubelongpart__partname', 'took', 'score', 'ison', 'passcode','starttime') a['cjrydetail'] = list(objs) a['ison'] = 1 tests = ExamTestDetail.objects.filter(examtest__id=id,user__userid=userid)#考试记录 From 8bda1e3d2ca60a765b31c37e9c82b6acc987993b Mon Sep 17 00:00:00 2001 From: shilixia <2309368887@qq.com> Date: Wed, 25 Dec 2019 13:55:25 +0800 Subject: [PATCH 4/7] xuigaiquanxian --- safesite/templates/riskadd.html | 6 ++++++ safesite/urls.py | 5 ----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/safesite/templates/riskadd.html b/safesite/templates/riskadd.html index 9fc16317..0937d301 100644 --- a/safesite/templates/riskadd.html +++ b/safesite/templates/riskadd.html @@ -74,6 +74,12 @@
查询 diff --git a/safesite/templates/zuoyepeizhi.html b/safesite/templates/zuoyepeizhi.html index 3f1042a4..531ec1bf 100644 --- a/safesite/templates/zuoyepeizhi.html +++ b/safesite/templates/zuoyepeizhi.html @@ -6,15 +6,31 @@
+ + {% load myfilter %} + {% if request|has_permission:'b_zuoyepeizhi_risk_add' %} 新增 - 删除 + {% endif %} + {% if request|has_permission:'b_zuoyepeizhi_risk_del' %} + 删除 + {% endif %} + + + +
+ {% if request|has_permission:'b_zuoyepeizhi_shenpi_add' %} 新增 - 删除 + {% endif %} + {% if request|has_permission:'b_zuoyepeizhi_shenpi_del' %} + 删除 + {% endif %} + +
From 02987f39aeb612b5e24b34ea7accc3460477298e Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 25 Dec 2019 17:04:44 +0800 Subject: [PATCH 6/7] button control part1 --- safesite/templates/drill.html | 33 +++++++++++++++++--------- safesite/templates/edulessonindex.html | 33 +++++++++++++++++--------- safesite/templates/equipment.html | 28 +++++++++++++++++++++- safesite/templates/examtest.html | 17 ++++++++++--- safesite/templates/inspect.html | 20 ++++++++++------ safesite/templates/miss.html | 26 +++++++++++++------- safesite/templates/notice.html | 26 +++++++++++++------- safesite/templates/observe.html | 33 ++++++++++++++++---------- safesite/templates/operation.html | 11 +++++++++ safesite/templates/risk.html | 15 ++++++++++++ safesite/templates/suggest.html | 29 ++++++++++++++-------- safesite/templates/task.html | 3 +++ safesite/templates/train.html | 32 ++++++++++++++++--------- 13 files changed, 224 insertions(+), 82 deletions(-) diff --git a/safesite/templates/drill.html b/safesite/templates/drill.html index 26aa7356..ce8b9222 100644 --- a/safesite/templates/drill.html +++ b/safesite/templates/drill.html @@ -1,16 +1,7 @@
-
-
+ -
+
详细筛选 +
+
+ {% load myfilter %} + {% if request|has_permission:'b_drill_add' %} + 新增 + {% endif %} + 评估 + + {% if request|has_permission:'b_drill_del' %} + 删除 + {% endif %} + {% if request|has_permission:'b_drill_detail' %} + 查看详情 + {% endif %} + {% if request|has_permission:'b_drill_exportdoc' %} + 导出Word + {% endif %} + {% if request|has_permission:'b_drill_exportxls' %} + 导出Excel + {% endif %}
diff --git a/safesite/templates/edulessonindex.html b/safesite/templates/edulessonindex.html index 27bf0401..0ee05fd9 100644 --- a/safesite/templates/edulessonindex.html +++ b/safesite/templates/edulessonindex.html @@ -1,16 +1,7 @@ -
-
- 上传视频 - 上传文件 - 删除文件 + -
+
+
+
+ {% load myfilter %} + {% if request|has_permission:'b_edu_addvideo' %} + 上传视频 + {% endif %} + {% if request|has_permission:'b_edu_addfile' %} + 上传文件 + {% endif %} + {% if request|has_permission:'b_edu_del' %} + 删除文件 + {% endif %} + {% if request|has_permission:'b_edu_study' %} + 点击学习 + {% endif %} + {% if request|has_permission:'b_edu_detail' %} + 观看历史 + {% endif %} + +
diff --git a/safesite/templates/equipment.html b/safesite/templates/equipment.html index ca770a8f..d784c15f 100644 --- a/safesite/templates/equipment.html +++ b/safesite/templates/equipment.html @@ -6,14 +6,22 @@
+ {% load myfilter %} + {% if request|has_permission:'b_equipment_add' %} 新增设备 + + {% endif %} + {% if request|has_permission:'b_equipment_import' %} 导入设备 + {% endif %} + {% if request|has_permission:'b_equipment_del' %} 删除 + {% endif %}
@@ -29,7 +37,12 @@ 查询 + {% if request|has_permission:'b_equipment_exportxls' %} 导出Excel + {% endif %} + {% if request|has_permission:'b_equipment_change' %} + + {% endif %}
@@ -76,7 +89,9 @@ style="height:100px;width:90%" data-options="multiline:true" /> - 保存 + + 保存 + @@ -99,6 +114,11 @@