集团内共享题库
This commit is contained in:
parent
a5b9773594
commit
d59f5c7b3e
|
@ -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)
|
||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||
|
||||
@admin.register(models.GroupUser)
|
||||
class GroupuserAdmin(admin.ModelAdmin):
|
||||
list_display=['username','group']
|
||||
exclude = ('user',)
|
|
@ -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="管理员"
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<ul id="mrfltree" data-options="animate:true,toolbar:'#mrflbar'"></ul>
|
||||
</div>
|
||||
<!-- <div id="gwfl" height="30%"></div> -->
|
||||
<div id="zjfl" height="40%" title="自建分类">
|
||||
<div id="zjfl" height="30%" title="自建分类">
|
||||
<div id="zjflbar" style="padding:5px;height:auto">
|
||||
|
||||
{% load myfilter %}
|
||||
|
@ -25,7 +25,7 @@
|
|||
</div>
|
||||
<ul id="zjfltree" data-options="animate:true,toolbar:'#zjflbar'"></ul>
|
||||
</div>
|
||||
<div id="gxfl" height="30%" title="集团共享分类" class="easyui-panel">
|
||||
<div id="gxfl" height="40%" title="集团共享分类" class="easyui-panel">
|
||||
<ul id="gxfltree" data-options="animate:true"></ul>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -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,
|
||||
});
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
<div class="easyui-layout" style="width:100%;height:100%;">
|
||||
<div data-options="region:'west',split:true,border:false" style="width:220px;height:100%;">
|
||||
<div id="mrfl" height="50%" title="默认分类">
|
||||
<div id="mrfl" height="30%" title="默认分类">
|
||||
<ul id="mrfltree" data-options="animate:true"></ul>
|
||||
</div>
|
||||
<!-- <div id="gwfl" height="30%"></div> -->
|
||||
<div id="zjfl" height="50%" title="自建分类">
|
||||
<div id="zjfl" height="30%" title="自建分类">
|
||||
<ul id="zjfltree" data-options="animate:true"></ul>
|
||||
</div>
|
||||
<div id="gxfl" height="40%" title="集团共享分类" class="easyui-panel">
|
||||
<ul id="gxfltree" data-options="animate:true"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div data-options="region:'center',title:'题目',split:true,border:false" style="height:100%;">
|
||||
|
||||
|
@ -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 += ' <span style=\'color:blue\'>(' + node.children.length + ')</span>';
|
||||
}
|
||||
return s;
|
||||
},
|
||||
onSelect: function (row) {
|
||||
$('#tmtable').datagrid('options').queryParams.tmlx = row.id
|
||||
$("#tmtable").datagrid('reload');
|
||||
}
|
||||
});
|
||||
// $('#gwfl').datagrid({
|
||||
// url: 'grouphandle?a=list',
|
||||
// rownumbers: true,
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Reference in New Issue