diff --git a/groups/views.py b/groups/views.py index 6bac2728..fa180e2b 100644 --- a/groups/views.py +++ b/groups/views.py @@ -25,6 +25,7 @@ def check_login(func): # 自定义登录验证装饰器 return warpper + def login(request): # 不允许重复登录 if request.session.get('is_login', None): @@ -146,7 +147,6 @@ def company_userchange_page(request, uid): user = s_models.User.objects.get(pk=uid) except s_models.User.DoesNotExist: raise Http404("User does not exist") - print(model_to_dict(user)) user_form = UserForm(model_to_dict(user)) return render(request, 'groups/company_userchange.html', locals()) @@ -199,138 +199,119 @@ def getPosition(address): return json_data + def apipositions(req): - companys = GroupUser.objects.get(id=req.session['user_id']).group.members.all() - positions = companys.values('position', 'partname') - return JsonResponse({"code": 1, "data": list(positions)}) - - -def trouble(request): # 隐患排查 + companys = GroupUser.objects.get(id = req.session['user_id']).group.members.all() + positions = companys.values('position','partname') + return JsonResponse({"code":1,"data":list(positions)}) +def trouble(request):#隐患排查 return render(request, 'groups/troublepic.html', locals()) - - -def observe(request): # 行为观察 +def observe(request):#行为观察 return render(request, 'groups/observe.html', locals()) - - -def miss(request): # 未遂事件 +def miss(request):#未遂事件 return render(request, 'groups/miss.html', locals()) - - -def risk(request): # 风险管控 +def risk(request):#风险管控 return render(request, 'groups/risk.html', locals()) - - -def train(request): # 教育培训 +def train(request):#教育培训 return render(request, 'groups/train.html', locals()) - - -def exam(request): # 在线考试 +def exam(request):#在线考试 return render(request, 'groups/exam.html', locals()) - - -def troubleChart(request): # 隐患统计图 +def troubleChart(request):#隐患统计图 code = request.GET.get('code') start = request.GET.get('start') end = request.GET.get('end') - if code == 'tbpic': - companys = GroupUser.objects.get(id=request.session['user_id']).group.members.all() - troublelist = s_models.Trouble.objects.filter(deletemark=1, usecomp__in=companys).values('usecomp__partid', - 'usecomp__partname').annotate( - number=Count('troubleid')) - if start: - troublelist = troublelist.filter(fxsj__gte=start) - if end: - troublelist = troublelist.filter(fxsj__lte=end) - return HttpResponse(json.dumps({'code': 1, 'data': {'troublelist': list(troublelist)}}), - content_type='application/json') + if code=='tbpic': + companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all() + troublelist = s_models.Trouble.objects.filter(deletemark=1,usecomp__in=companys).values('usecomp__partid','usecomp__partname') + if start: + troublelist = troublelist.filter(fxsj__gte=start) + if end: + troublelist = troublelist.filter(fxsj__lte=end) + troublelist=troublelist.annotate(number = Count('usecomp')).order_by('-number') - -def observeChart(request): # 行为观察 + return HttpResponse(json.dumps({'code':1,'data':{'troublelist':list(troublelist)}}), content_type='application/json') +def observeChart(request):#行为观察 code = request.GET.get('code') start = request.GET.get('start') end = request.GET.get('end') - if code == 'obv': - companys = GroupUser.objects.get(id=request.session['user_id']).group.members.all() - observelist = s_models.Observe.objects.filter(deletemark=1, usecomp__in=companys).values('usecomp__partid', - 'usecomp__partname').annotate( - number=Count('lookid')) - if start: - observelist = observelist.filter(looktime__gte=start) - if end: - observelist = observelist.filter(looktime__lte=end) - return HttpResponse(json.dumps({'code': 1, 'data': {'observelist': list(observelist)}}), - content_type='application/json') - - -def missChart(request): # 未遂事件 + if code=='obv': + companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all() + observelist = s_models.Observe.objects.filter(deletemark=1,usecomp__in=companys).values('usecomp__partid','usecomp__partname') + if start: + observelist = observelist.filter(looktime__gte=start) + if end: + observelist = observelist.filter(looktime__lte=end) + observelist=observelist.annotate(number = Count('usecomp')).order_by('-number') + return HttpResponse(json.dumps({'code':1,'data':{'observelist':list(observelist)}}), content_type='application/json') + +def missChart(request):#未遂事件 code = request.GET.get('code') start = request.GET.get('start') end = request.GET.get('end') - if code == 'miss': + if code=='miss': + + companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all() + misslist = s_models.Miss.objects.filter(deletemark=1,usecomp__in=companys).values('usecomp__partid','usecomp__partname') + if start: + misslist = misslist.filter(misstime__gte=start) + if end: + misslist = misslist.filter(misstime__lte=end) + misslist=misslist.annotate(number = Count('usecomp')).order_by('-number') + return HttpResponse(json.dumps({'code':1,'data':{'misslist':list(misslist)}}), content_type='application/json') + +def riskChart(request):#风险管控 - companys = GroupUser.objects.get(id=request.session['user_id']).group.members.all() - misslist = s_models.Miss.objects.filter(deletemark=1, usecomp__in=companys).values('usecomp__partid', - 'usecomp__partname').annotate( - number=Count('missid')) - if start: - misslist = misslist.filter(misstime__gte=start) - if end: - misslist = misslist.filter(misstime__lte=end) - return HttpResponse(json.dumps({'code': 1, 'data': {'misslist': list(misslist)}}), - content_type='application/json') - - -def riskChart(request): # 风险管控 code = request.GET.get('code') start = request.GET.get('start') end = request.GET.get('end') - if code == 'risk': - - companys = GroupUser.objects.get(id=request.session['user_id']).group.members.all() - risklist = s_models.Risk.objects.filter(usecomp__in=companys).values('usecomp__partid', - 'usecomp__partname').annotate( - number=Count('id')) - if start: - risklist = risklist.filter(createtime__gte=start) - if end: - risklist = risklist.filter(createtime__lte=end) - return HttpResponse(json.dumps({'code': 1, 'data': {'risklist': list(risklist)}}), - content_type='application/json') - - -def trainChart(request): # 教育培训 + risks = [] + if code=='risk': + companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all() + for i in companys: + risk= s_models.RiskAct.objects.filter(usecomp__partid=i.partid) + if start: + risk = risk.filter(createtime__gte=start) + if end: + risk = risk.filter(createtime__lte=end) + datariskact=risk.count() + datariskact1=risk.filter(level="低风险").count() + datariskact2=risk.filter(level="一般风险").count() + datariskact3=risk.filter(level="较大风险").count() + datariskact4=risk.filter(level="重大风险").count() + risks.append({'companyName':i.partname,'datariskact':datariskact,'datariskact1':datariskact1,'datariskact2':datariskact2,'datariskact3':datariskact3,'datariskact4':datariskact4}) + return HttpResponse(json.dumps({'code':1,'risks':risks}), content_type='application/json') + +def trainChart(request):#教育培训 code = request.GET.get('code') start = request.GET.get('start') end = request.GET.get('end') - if code == 'train': - companys = GroupUser.objects.get(id=request.session['user_id']).group.members.all() - trainlist = s_models.Train.objects.filter(usecomp__in=companys).values('usecomp__partid', - 'usecomp__partname').annotate( - number=Count('trainid')) - if start: - trainlist = trainlist.filter(starttime__gte=start) - if end: - trainlist = trainlist.filter(starttime__lte=end) - return HttpResponse(json.dumps({'code': 1, 'data': {'trainlist': list(trainlist)}}), - content_type='application/json') + if code=='train': + companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all() + trainlist = s_models.Train.objects.filter(usecomp__in=companys,deletemark=1).values('usecomp__partid','usecomp__partname') + if start: + trainlist = trainlist.filter(starttime__gte=start) + if end: + trainlist = trainlist.filter(starttime__lte=end) + trainlist=trainlist.annotate(number = Count('usecomp')).order_by('-number') - -def examChart(request): # 在线考试 + return HttpResponse(json.dumps({'code':1,'data':{'trainlist':list(trainlist)}}), content_type='application/json') + +def examChart(request):#在线考试 code = request.GET.get('code') start = request.GET.get('start') end = request.GET.get('end') examjson = [] - if code == 'exam': - companys = GroupUser.objects.get(id=request.session['user_id']).group.members.all() + if code=='exam': + companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all() + + for i in companys: + examnumber = s_models.ExamTest.objects.filter(usecomps__contains=','+str(i.partid)+',') + if start: + examnumber = examnumber.filter(usecomps__contains=','+str(i.partid)+',',starttime__gte=start) + if end: + examnumber = examnumber.filter(usecomps__contains=','+str(i.partid)+',',starttime__lte=end) + examjson.append({'companyName':i.partname,'number':examnumber.count()}) + return HttpResponse(json.dumps({'code':1,'data':examjson}), content_type='application/json') + - for i in companys: - examlist = s_models.ExamTest.objects.filter(usecomps__contains=',' + str(i.partid) + ',') - if start: - examlist = examlist.filter(starttime__gte=start) - if end: - examlist = examlist.filter(starttime__lte=end) - number = examlist.count() - examjson.append({'companyName': i.partname, 'number': number}) - return HttpResponse(json.dumps({'code': 1, 'data': examjson}), content_type='application/json') diff --git a/safesite/templates/examfigure.html b/safesite/templates/examfigure.html new file mode 100644 index 00000000..ab227e46 --- /dev/null +++ b/safesite/templates/examfigure.html @@ -0,0 +1,268 @@ + + + + +
姓名 | +培训次数 | +
---|