diff --git a/groups/views.py b/groups/views.py index f9faf49e..4f20c5bd 100644 --- a/groups/views.py +++ b/groups/views.py @@ -478,26 +478,28 @@ def exam_rate(request): for i in companys: # 员工数 user_count = s_models.User.objects.filter(usecomp=i, deletemark=1).count() - # 参加考试员工数 + # 参加考试员工数/考次数 base = s_models.ExamTestDetail.objects.filter(user__usecomp=i, user__deletemark=1, ison=1).exclude(examtest__nousecomps__contains=','+str(i.partid)+',') if start: base = base.filter(examtest__starttime__gte=start) if end: base = base.filter(examtest__starttime__lte=end) + # 参加考试员工数 testuser_count = base.values('user').distinct().count() # 参考率 rate1 = testuser_count/user_count # 考试总数 test_count = base.count() - # 满分数 - full_count = base.filter(score__gte= F('examtest__totalscore')).count() + # 满分人数 + full_count = base.filter(score__gte= F('examtest__totalscore')).values('user').distinct().count() # 满分率 - rate2 = full_count/test_count if test_count else 0 - # 90分数 - ninety_count = base.filter(score__gte = F('examtest__totalscore')*0.9).count() + rate2 = full_count/user_count if user_count else 0 + # 90分数人数 + ninety_count = base.filter(score__gte = F('examtest__totalscore')*0.9).values('user').distinct().count() # 90以上得分率 - rate3 = ninety_count/test_count if test_count else 0 - + rate3 = ninety_count/user_count if user_count else 0 + if base: + print(base, base[0].examtest.id, base[0].user.userid) # rate1 = '%.2f' % (rate1*100) rate1 = int(rate1*100+0.5) rate2 = int(rate2*100+0.5)