From a5b9773594414d8c8e2a8745d49904dc219f9fb8 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 28 Oct 2020 22:21:39 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=86=E5=9B=A2=E5=86=85=E5=85=B1=E4=BA=AB?= =?UTF-8?q?=E9=A2=98=E5=BA=93=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groups/models.py | 6 ++--- safesite/templates/observe.html | 3 ++- safesite/templates/question.html | 38 ++++++++++++++++++++++++++------ safesite/views.py | 12 +++++++++- 4 files changed, 47 insertions(+), 12 deletions(-) diff --git a/groups/models.py b/groups/models.py index 9c770d24..eeb3d8b8 100644 --- a/groups/models.py +++ b/groups/models.py @@ -12,7 +12,7 @@ class Group(models.Model): groupname = models.CharField(max_length=128, unique=True) type = models.CharField(max_length=32, choices=grouptype, default="集团") createtime = models.DateTimeField(auto_now_add=True) - members = models.ManyToManyField(s_models.Partment,through='Groupmember') + members = models.ManyToManyField(s_models.Partment,through='Groupmember', related_name='group_members') def __str__(self): return self.groupname @@ -22,8 +22,8 @@ class Group(models.Model): verbose_name_plural="集团" class Groupmember(models.Model): - group = models.ForeignKey(Group,on_delete=models.CASCADE) - member = models.ForeignKey(s_models.Partment,on_delete=models.CASCADE) + group = models.ForeignKey(Group,on_delete=models.CASCADE, related_name='groupmember_group') + member = models.ForeignKey(s_models.Partment,on_delete=models.CASCADE, related_name='groupmember_member') class GroupUser(models.Model): username = models.CharField(max_length=128, unique=True) diff --git a/safesite/templates/observe.html b/safesite/templates/observe.html index ef1f6b87..f2c0664a 100644 --- a/safesite/templates/observe.html +++ b/safesite/templates/observe.html @@ -97,7 +97,8 @@ function reset() { $('#searchgcff').form('clear') $('#gctable').datagrid('options').queryParams = { - a:'listall' + a:'listall', + } $('#gctable').datagrid('load'); diff --git a/safesite/templates/question.html b/safesite/templates/question.html index bfe3376a..6b1bf605 100644 --- a/safesite/templates/question.html +++ b/safesite/templates/question.html @@ -1,10 +1,10 @@
-
-
+
+
    -
    +
    {% load myfilter %} @@ -25,6 +25,9 @@
      +
      +
        +
        @@ -149,6 +152,25 @@ }); } }); + $('#gxfltree').tree({ + url: 'api/questioncat?a=tree3', + animate: true, + loadFilter: function (rows) { + return convert(rows); + }, + formatter: function (node) { + var s = node.text; + if (node.children) { + s += ' (' + node.children.length + ')'; + } + return s; + }, + onSelect: function (row) { + $("#tmtable").datagrid({ + url: 'api/question?a=listall&tmlx=' + row.id, + }); + } + }); $('#gwfl').datagrid({ url: 'grouphandle?a=list', @@ -314,7 +336,8 @@ var querydata = $('#searchtmff').serializeJSON(); querydata['a'] = 'listall' querydata['tmlx'] = '' - $('#tmtable').datagrid('reload', querydata); + $('#tmtable').datagrid('options').queryParams = querydata + $('#tmtable').datagrid('reload'); } function confirmfz() { var rows = $('#tmtable').datagrid('getSelections'); @@ -362,9 +385,10 @@ } function reset() { $('#searchtmff').form('clear') - var querydata = $('#searchtmff').serializeJSON(); - querydata['tmlx'] = '' - $('#tmtable').datagrid('reload', querydata); + $('#tmtable').datagrid('options').queryParams = { + a:'listall' + } + $('#tmtable').datagrid('reload'); } document.getElementById('drfile').onchange = function () { var fileObj = this.files[0]; diff --git a/safesite/views.py b/safesite/views.py index ebe46e2b..68bd5c17 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -6518,7 +6518,8 @@ def apitrain(req): res = exportxlsx('grpxjl', a) return res - + +from groups import models as g_models def apiquestioncat(req): a = req.GET.get('a') userid = req.session['userid'] @@ -6531,6 +6532,15 @@ def apiquestioncat(req): list_items = (Questioncat.objects.filter(usecomp__partid=companyid, deletemark=1)).annotate( parentId=F('parent__id')).values('id', 'parentId', 'name') return HttpResponse(json.dumps(list(list_items)), content_type="application/json") + elif a == 'tree3': + groups = g_models.Groupmember.objects.filter(member__partid=companyid).values_list('group__id', flat=True) + companys = g_models.Groupmember.objects.filter(group__id__in=groups).values_list('member__partid', flat=True).distinct() + list_items = [] + for i in companys: + list_item = (Questioncat.objects.filter(usecomp__partid=i, deletemark=1)).annotate( + parentId=F('parent__id')).values('id', 'parentId', 'name') + list_items.append(list_item) + return HttpResponse(json.dumps(list(list_items)), content_type="application/json") elif a == 'tree': list_items = (Questioncat.objects.filter(usecomp__partid=1, deletemark=1) | Questioncat.objects.filter( usecomp__partid=companyid, deletemark=1)).annotate(parentId=F('parent__id')).values('id', 'parentId', 'name')