diff --git a/groups/templates/groups/company.html b/groups/templates/groups/company.html
index 4fd830b4..0e2d1026 100644
--- a/groups/templates/groups/company.html
+++ b/groups/templates/groups/company.html
@@ -2,7 +2,6 @@
{% load static %}
{% block headother%}
-
{% endblock %}
diff --git a/groups/templates/groups/exam.html b/groups/templates/groups/exam.html
index f85db51e..d5603c83 100644
--- a/groups/templates/groups/exam.html
+++ b/groups/templates/groups/exam.html
@@ -2,7 +2,8 @@
{% load static %}
{% block headother%}
-
+
+
@@ -26,6 +27,15 @@
结束日期:
+
@@ -35,9 +45,8 @@
{% endblock %}
\ No newline at end of file
diff --git a/groups/urls.py b/groups/urls.py
index 0ccbf9c6..27bb9e53 100644
--- a/groups/urls.py
+++ b/groups/urls.py
@@ -31,7 +31,7 @@ urlpatterns = [
path('api/riskChart',views.riskChart),
path('api/trainChart',views.trainChart),
path('api/examChart',views.examChart),
- path('api/examrate/',views.exam_rate),
+ path('api/examrate/',views.exam_rate, name='exam_rate'),
path('api/admininfo//', views.admininfo),
diff --git a/groups/views.py b/groups/views.py
index 7e30cb61..c47076ec 100644
--- a/groups/views.py
+++ b/groups/views.py
@@ -226,7 +226,7 @@ def job(request):
def company_user(request, cid):
- users = s_models.User.objects.filter(usecomp=cid).order_by('userid')
+ users = s_models.User.objects.filter(usecomp=cid, deletemark=1, issuper=0).order_by('userid')
# for user in users:
# dump(user)
return render(request, 'groups/company_user.html', locals())
@@ -457,8 +457,8 @@ def examChart(request):#在线考试
examjson = []
if code=='exam':
companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all()
- if request.session.get('issuper'):
- companys = s_models.Partment.objects.filter(iscompany=1,deletemark=1)
+ # if request.session.get('issuper'):
+ # companys = s_models.Partment.objects.filter(iscompany=1,deletemark=1)
examobjs = s_models.ExamTest.objects.all()
if start:
examobjs = examobjs.filter(starttime__gte=start)
@@ -477,6 +477,8 @@ def exam_rate(request):
groupuser = GroupUser.objects.get(id = request.session['user_id'])
companys = groupuser.group.members.all()
ret = {'x':{'name':'所属公司', 'data':[]}, 's':[{'name':'参考率', 'data':[]},{'name':'优秀率', 'data':[]}, {'name':'满分率', 'data':[]}], 't':'各公司考试比例统计'}
+ ret_ = []
+ test_count_t = 0
user_count_t = 0
testuser_count_t = 0
full_count_t = 0
@@ -490,6 +492,12 @@ def exam_rate(request):
base = base.filter(examtest__starttime__gte=start)
if end:
base = base.filter(examtest__starttime__lte=end)
+ test = s_models.ExamTest.objects.filter(usecomps__contains=','+str(i.partid)+',').exclude(nousecomps__contains=','+str(i.partid)+',')
+ if start:
+ test = test.filter(starttime__gte=start)
+ if end:
+ test = test.filter(starttime__lte=end)
+ test_count = test.count()
# 参加考试员工数
testuser_count = base.values('user').distinct().count()
# 参考率
@@ -516,14 +524,22 @@ def exam_rate(request):
testuser_count_t = testuser_count_t + testuser_count
full_count_t = full_count_t + full_count
ninety_count_t = ninety_count_t + ninety_count
+ test_count_t = test_count_t + test_count
+ ret_.append({'company':i.partname,'test_count':test_count, 'user_count':user_count, 'testuser_count':testuser_count, 'ninety_count':ninety_count, 'full_count':full_count,
+ 'rate1':rate1, 'rate2':rate2, 'rate3':rate3})
rate1_t = testuser_count_t/user_count_t
rate2_t = full_count_t/user_count_t if user_count_t else 0
rate3_t = ninety_count_t/user_count_t if user_count_t else 0
+ rate1_t = int(rate1_t*100+0.5) if int(rate1_t*100+0.5)<101 else 100
+ rate2_t = int(rate2_t*100+0.5) if int(rate2_t*100+0.5)<101 else 100
+ rate3_t = int(rate3_t*100+0.5) if int(rate3_t*100+0.5)<101 else 100
ret['x']['data'].insert(0, groupuser.group.groupname)
- ret['s'][0]['data'].insert(0, int(rate1_t*100+0.5) if int(rate1_t*100+0.5)<101 else 100)
- ret['s'][1]['data'].insert(0, int(rate3_t*100+0.5) if int(rate3_t*100+0.5)<101 else 100)
- ret['s'][2]['data'].insert(0, int(rate2_t*100+0.5) if int(rate2_t*100+0.5)<101 else 100)
- return HttpResponse(json.dumps({'code':200,'data':ret}), content_type='application/json')
+ ret['s'][0]['data'].insert(0, rate1_t)
+ ret['s'][1]['data'].insert(0, rate3_t)
+ ret['s'][2]['data'].insert(0, rate2_t)
+ ret_.insert(0,{'company':groupuser.group.groupname,'test_count':test_count_t, 'user_count':user_count_t, 'testuser_count':testuser_count_t, 'ninety_count':ninety_count_t, 'full_count':full_count_t,
+ 'rate1':rate1_t, 'rate2':rate2_t, 'rate3':rate3_t})
+ return HttpResponse(json.dumps({'code':200,'data':[ret, {'total':len(ret_),'rows':ret_}]}), content_type='application/json')
diff --git a/safesite/static/safesite/easyui/themes/icon.css b/safesite/static/safesite/easyui/themes/icon.css
index 418437d7..be9825df 100644
--- a/safesite/static/safesite/easyui/themes/icon.css
+++ b/safesite/static/safesite/easyui/themes/icon.css
@@ -184,7 +184,9 @@
.icon-trainplan {
background: url('icons/trainplan.png') no-repeat center center;
}
-
+.icon-follow {
+ background: url('icons/follow.png') no-repeat center center;
+}
.icon-mini-add{
background:url('icons/mini_add.png') no-repeat center center;
diff --git a/safesite/static/safesite/easyui/themes/icons/follow.png b/safesite/static/safesite/easyui/themes/icons/follow.png
new file mode 100644
index 00000000..fa448abc
Binary files /dev/null and b/safesite/static/safesite/easyui/themes/icons/follow.png differ