自动抽屉生成的考试二维码bug
This commit is contained in:
parent
79a025904d
commit
bec5c2fbbf
|
@ -741,7 +741,7 @@ class ExamTest(models.Model): # 考试表
|
||||||
id = models.AutoField(primary_key=True)
|
id = models.AutoField(primary_key=True)
|
||||||
num = models.CharField(max_length=200, default='') # 编号
|
num = models.CharField(max_length=200, default='') # 编号
|
||||||
name = models.CharField(max_length=200, default='')
|
name = models.CharField(max_length=200, default='')
|
||||||
type = models.IntegerField(default=1) # 正式考试/模拟考试/练习
|
type = models.IntegerField(default=1) # 试卷库考试/自动抽题考试
|
||||||
state = models.IntegerField(default=1) # 1进行中 0是已关闭
|
state = models.IntegerField(default=1) # 1进行中 0是已关闭
|
||||||
exampaper = models.ForeignKey(ExamPaper, on_delete=models.CASCADE)
|
exampaper = models.ForeignKey(ExamPaper, on_delete=models.CASCADE)
|
||||||
user = models.ManyToManyField(User, through='ExamTestDetail') # 考试人员
|
user = models.ManyToManyField(User, through='ExamTestDetail') # 考试人员
|
||||||
|
|
|
@ -10,6 +10,11 @@
|
||||||
<input id="name" name="name" class="easyui-textbox" style="width:90%" data-options="label:'考试名称'"
|
<input id="name" name="name" class="easyui-textbox" style="width:90%" data-options="label:'考试名称'"
|
||||||
required=true />
|
required=true />
|
||||||
</div>
|
</div>
|
||||||
|
<div style="margin-bottom:5px;">
|
||||||
|
<label>允许与其他自动抽题考试题目重复</label>
|
||||||
|
<input id="repeatbutton" class="easyui-switchbutton" data-options="onText:'允许',offText:'不允许'" style="width: 80px;">
|
||||||
|
<input id="repeat" name="repeat" val="yes" type="hidden"></input>
|
||||||
|
</div>
|
||||||
<div style="margin-bottom:5px;">
|
<div style="margin-bottom:5px;">
|
||||||
<input id="tmfls" editable="false" name="tmfls" class="easyui-combotree" style="width:90%"
|
<input id="tmfls" editable="false" name="tmfls" class="easyui-combotree" style="width:90%"
|
||||||
data-options="label:'选择分类'" required=true />
|
data-options="label:'选择分类'" required=true />
|
||||||
|
@ -46,6 +51,28 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
$('#repeatbutton').switchbutton({
|
||||||
|
checked: true,
|
||||||
|
onChange: function(checked){
|
||||||
|
if (checked == true){
|
||||||
|
$('#repeat').val('yes')
|
||||||
|
}
|
||||||
|
if (checked == false){
|
||||||
|
$('#repeat').val('no')
|
||||||
|
}
|
||||||
|
var tmfls = $('#tmfls').combotree('getValues')
|
||||||
|
if(tmfls.length>0){
|
||||||
|
var repeat = $('#repeat').val()
|
||||||
|
$.post('api/question?a=search',JSON.stringify({'tmfls':tmfls,'repeat':repeat}),function(res){
|
||||||
|
$('#dxnumt').textbox('setValue',res.dxnum)
|
||||||
|
$('#duoxnumt').textbox('setValue',res.duoxnum)
|
||||||
|
$('#pdnumt').textbox('setValue',res.pdnum)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
$("#tmfls").combotree({
|
$("#tmfls").combotree({
|
||||||
url: 'api/questioncat?a=tree',
|
url: 'api/questioncat?a=tree',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
|
@ -63,7 +90,8 @@
|
||||||
editable: false,
|
editable: false,
|
||||||
onCheck:function(node){
|
onCheck:function(node){
|
||||||
var tmfls = $('#tmfls').combotree('getValues')
|
var tmfls = $('#tmfls').combotree('getValues')
|
||||||
$.post('api/question?a=search',JSON.stringify({'tmfls':tmfls}),function(res){
|
var repeat = $('#repeat').val()
|
||||||
|
$.post('api/question?a=search',JSON.stringify({'tmfls':tmfls,'repeat':repeat}),function(res){
|
||||||
$('#dxnumt').textbox('setValue',res.dxnum)
|
$('#dxnumt').textbox('setValue',res.dxnum)
|
||||||
$('#duoxnumt').textbox('setValue',res.duoxnum)
|
$('#duoxnumt').textbox('setValue',res.duoxnum)
|
||||||
$('#pdnumt').textbox('setValue',res.pdnum)
|
$('#pdnumt').textbox('setValue',res.pdnum)
|
||||||
|
@ -95,6 +123,7 @@
|
||||||
function kssubmitForm() {
|
function kssubmitForm() {
|
||||||
var ksdata = $('#ksff').serializeJSON();
|
var ksdata = $('#ksff').serializeJSON();
|
||||||
ksdata['tmfls'] = $('#tmfls').combotree('getValues')
|
ksdata['tmfls'] = $('#tmfls').combotree('getValues')
|
||||||
|
console.log(ksdata)
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: 'api/examtest?a=add2',
|
url: 'api/examtest?a=add2',
|
||||||
|
|
|
@ -5581,6 +5581,10 @@ def apiquestion(req):
|
||||||
data = json.loads(req.body.decode('utf-8'))
|
data = json.loads(req.body.decode('utf-8'))
|
||||||
tmfls = data['tmfls']
|
tmfls = data['tmfls']
|
||||||
a = Question.objects.filter(deletemark=1, questioncat__id__in=tmfls)
|
a = Question.objects.filter(deletemark=1, questioncat__id__in=tmfls)
|
||||||
|
if 'repeat' in data and data['repeat'] == 'no':
|
||||||
|
excludequestions = ExamTest.objects.filter(usecomps__contains=','+companyid +
|
||||||
|
',').exclude(nousecomps__contains=','+companyid+',').values_list('exampaper__question__id',flat=True).distinct()
|
||||||
|
a = a.exclude(id__in=excludequestions)
|
||||||
dxnum = a.filter(type=1).count()
|
dxnum = a.filter(type=1).count()
|
||||||
duoxnum = a.filter(type=2).count()
|
duoxnum = a.filter(type=2).count()
|
||||||
pdnum = a.filter(type=3).count()
|
pdnum = a.filter(type=3).count()
|
||||||
|
@ -5904,6 +5908,10 @@ def apiexamtest(req):
|
||||||
objpaper.save()
|
objpaper.save()
|
||||||
questionobjs = Question.objects.filter(
|
questionobjs = Question.objects.filter(
|
||||||
questioncat__id__in=data['tmfls'])
|
questioncat__id__in=data['tmfls'])
|
||||||
|
if 'repeat' in data and data['repeat'] == 'no':
|
||||||
|
excludequestions = ExamTest.objects.filter(usecomps__contains=','+companyid +
|
||||||
|
',').exclude(nousecomps__contains=','+companyid+',').values_list('exampaper__question__id',flat=True).distinct()
|
||||||
|
questionobjs = questionobjs.exclude(id__in=excludequestions)
|
||||||
if dxnum > 0:
|
if dxnum > 0:
|
||||||
qobjs = questionobjs.filter(type=1).order_by('?')[:dxnum]
|
qobjs = questionobjs.filter(type=1).order_by('?')[:dxnum]
|
||||||
for i in qobjs:
|
for i in qobjs:
|
||||||
|
@ -5931,6 +5939,7 @@ def apiexamtest(req):
|
||||||
obj.passscore = data['passscore']
|
obj.passscore = data['passscore']
|
||||||
obj.duration = data['duration']
|
obj.duration = data['duration']
|
||||||
obj.createuser = User.objects.get(userid=userid)
|
obj.createuser = User.objects.get(userid=userid)
|
||||||
|
obj.save()
|
||||||
obj.qrcode = makeqr_examtest(
|
obj.qrcode = makeqr_examtest(
|
||||||
'https://safeyun.ctcshe.com/miniprogram/examtest?id='+str(obj.id))
|
'https://safeyun.ctcshe.com/miniprogram/examtest?id='+str(obj.id))
|
||||||
obj.save()
|
obj.save()
|
||||||
|
|
Loading…
Reference in New Issue