From d59f5c7b3ef15ac96d5df9c91fe18b787570a438 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 29 Oct 2020 21:11:53 +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?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groups/admin.py | 9 ++++-- groups/models.py | 8 ++++++ safesite/templates/question.html | 22 +++++++------- safesite/templates/questionchoose.html | 40 ++++++++++++++++++++------ safesite/views.py | 9 ++++-- 5 files changed, 62 insertions(+), 26 deletions(-) diff --git a/groups/admin.py b/groups/admin.py index d3e0730e..f38a2edf 100644 --- a/groups/admin.py +++ b/groups/admin.py @@ -2,7 +2,7 @@ from django.contrib import admin from . import models from safesite import models as s_models # Register your models here. -admin.site.register(models.GroupUser) +# admin.site.register(models.GroupUser) @admin.register(models.Group) @@ -18,4 +18,9 @@ class GroupmemberAdmin(admin.ModelAdmin): def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "member": kwargs["queryset"] = s_models.Partment.objects.filter(iscompany=1,deletemark=1) - return super().formfield_for_foreignkey(db_field, request, **kwargs) \ No newline at end of file + return super().formfield_for_foreignkey(db_field, request, **kwargs) + +@admin.register(models.GroupUser) +class GroupuserAdmin(admin.ModelAdmin): + list_display=['username','group'] + exclude = ('user',) \ No newline at end of file diff --git a/groups/models.py b/groups/models.py index eeb3d8b8..d562390f 100644 --- a/groups/models.py +++ b/groups/models.py @@ -25,6 +25,10 @@ class Groupmember(models.Model): 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 Meta: + verbose_name="集团-管理员" + verbose_name_plural="集团-管理员" + class GroupUser(models.Model): username = models.CharField(max_length=128, unique=True) password = models.CharField(max_length=256) @@ -32,3 +36,7 @@ class GroupUser(models.Model): issuper = models.IntegerField(default=0) group = models.ForeignKey(Group,on_delete=models.CASCADE) + class Meta: + verbose_name="管理员" + verbose_name_plural="管理员" + diff --git a/safesite/templates/question.html b/safesite/templates/question.html index 6b1bf605..e197c4f4 100644 --- a/safesite/templates/question.html +++ b/safesite/templates/question.html @@ -4,7 +4,7 @@ -
+
{% load myfilter %} @@ -25,7 +25,7 @@
    -
    +
      @@ -126,9 +126,8 @@ return s; }, onSelect: function (row) { - $("#tmtable").datagrid({ - url: 'api/question?a=listall&tmlx=' + row.id, - }); + $('#tmtable').datagrid('options').queryParams.tmlx = row.id + $("#tmtable").datagrid('reload'); } }); $('#zjfl').panel() @@ -147,16 +146,15 @@ return s; }, onSelect: function (row) { - $("#tmtable").datagrid({ - url: 'api/question?a=listall&tmlx=' + row.id, - }); + $('#tmtable').datagrid('options').queryParams.tmlx = row.id + $("#tmtable").datagrid('reload'); } }); $('#gxfltree').tree({ url: 'api/questioncat?a=tree3', animate: true, loadFilter: function (rows) { - return convert(rows); + return convert(rows, 'closed'); }, formatter: function (node) { var s = node.text; @@ -166,9 +164,8 @@ return s; }, onSelect: function (row) { - $("#tmtable").datagrid({ - url: 'api/question?a=listall&tmlx=' + row.id, - }); + $('#tmtable').datagrid('options').queryParams.tmlx = row.id + $("#tmtable").datagrid('reload'); } }); $('#gwfl').datagrid({ @@ -186,6 +183,7 @@ { field: 'grouptype', title: '类型', hidden:true,width: 100 }, ]], onClickRow: function (index, row) { + $("#tmtable").datagrid({ url: 'api/question?a=listall&gwlx=' + row.groupid, }); diff --git a/safesite/templates/questionchoose.html b/safesite/templates/questionchoose.html index 2e690d54..74d32ecc 100644 --- a/safesite/templates/questionchoose.html +++ b/safesite/templates/questionchoose.html @@ -1,12 +1,15 @@
      -
      +
        -
        +
          +
          +
            +
            @@ -55,14 +58,16 @@ return s; }, onSelect: function (row) { - $("#tmtable").datagrid({ - url: 'api/question?a=listall&tmlx=' + row.id, - }); + $('#tmtable').datagrid('options').queryParams.tmlx = row.id + $("#tmtable").datagrid('reload'); } }); function reset() { $('#searchtmff').form('clear') - $('#tmtable').datagrid('reload', {'tmlx':''}) + $('#tmtable').datagrid('options').queryParams = { + a:'listall' + } + $('#tmtable').datagrid('reload'); } $('#zjfltree').tree({ url: 'api/questioncat?a=tree2', @@ -79,11 +84,28 @@ return s; }, onSelect: function (row) { - $("#tmtable").datagrid({ - url: 'api/question?a=listall&tmlx=' + row.id, - }); + $('#tmtable').datagrid('options').queryParams.tmlx = row.id + $("#tmtable").datagrid('reload'); } }) + $('#gxfltree').tree({ + url: 'api/questioncat?a=tree3', + animate: true, + loadFilter: function (rows) { + return convert(rows, 'closed'); + }, + formatter: function (node) { + var s = node.text; + if (node.children) { + s += ' (' + node.children.length + ')'; + } + return s; + }, + onSelect: function (row) { + $('#tmtable').datagrid('options').queryParams.tmlx = row.id + $("#tmtable").datagrid('reload'); + } + }); // $('#gwfl').datagrid({ // url: 'grouphandle?a=list', // rownumbers: true, diff --git a/safesite/views.py b/safesite/views.py index 68bd5c17..3c2d60fd 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -5754,7 +5754,10 @@ def apiquestion(req): if a == 'listall': objs = Question.objects.filter(deletemark=1) if not req.GET.get('all', None): - objs = objs.exclude(nousecomps__contains=','+companyid+',').filter(Q(usecomps__contains=',1,') | Q(usecomps__contains=','+companyid+',')) + if req.GET.get('tmlx', None): + pass + else: + objs = objs.exclude(nousecomps__contains=','+companyid+',').filter(Q(usecomps__contains=',1,') | Q(usecomps__contains=','+companyid+',')) else: objs = objs.filter(parent__isnull=True) if req.GET.get('type', None): @@ -6537,9 +6540,9 @@ def apiquestioncat(req): 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( + list_item = (Questioncat.objects.filter(usecomp=i, deletemark=1)).annotate( parentId=F('parent__id')).values('id', 'parentId', 'name') - list_items.append(list_item) + list_items.extend(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(