def Yesupdate(request): newname = request.POST.get('fbname') oldname = request.POST.get('oldname') cabname = request.POST.get('cab') acap = request.POST.get('acap') bcap = request.POST.get('bcap') apos = request.POST.get('apos') bpos = request.POST.get('bpos') aport = request.POST.get('aport') bport = request.POST.get('bport') man = request.POST.get('man') bk = request.POST.get('bk') date = request.POST.get('date') state = request.POST.get('state') if oldname == newname: if state != None: fibre = Fibre.objects.filter(FibreName=oldname) fibre.update(FibreName=newname, Acap=acap, Aposition=apos, Aport=aport, Bcap=bcap, Bposition=bpos, Bport=bport, MainMan=man, BkMan=bk, StartData=date, STATE=state) logprint.loge("光纤修改", request.user.username, "修改"+newname, "update") return render(request, 'polls/ok.html') else: fibre = Fibre.objects.filter(FibreName=oldname) fibre.update(FibreName=newname, Acap=acap, Aposition=apos, Aport=aport, Bcap=bcap, Bposition=bpos, Bport=bport, MainMan=man, BkMan=bk, StartData=date) logprint.loge("光纤修改", request.user.username, "修改"+newname, "update") return render(request, 'polls/ok.html')
def upFirbe(request): myFile = request.FILES.get("file", None) if myFile != None: Filename = myFile.name if Filename.endswith('.xlsx') and "光纤" in Filename: time = timezone.localtime(timezone.now()).strftime("%Y-%m-%d %H-%I-%S") Ftime = time + "-" + Filename with open(BASE_DIR + Ftime, 'wb+') as destination: for chunk in myFile.chunks(): destination.write(chunk) destination.close() print("成功") errorlis = Save(request, Ftime) number = len(errorlis) if number == 0: logprint.loge("导入光纤路由成功", request.user.username, "", "up") return render(request, "polls/ok.html") else: logprint.loge("导入光纤路由有错误", request.user.username, "", "up") return render(request, 'polls/okk.html', {"error": errorlis, "num": number}) else: return render(request, 'polls/no.html') else: return render(request, 'polls/nono.html')
def deluser(request): name = request.GET.get('id') fibre = User.objects.get(username=name) fibre.delete() resp = {'code': 100, 'detail': 'Get success'} logprint.loge("删除用户", request.user.username, "用户名" + name, "deleteUser") return HttpResponse(json.dumps(resp), content_type="application/json")
def cabdeletfirbe(request): name = request.GET.get('id') fibre = Cable.objects.filter(Cablename=name) fibre.delete() resp = {'code': 100, 'detail': 'Get success'} logprint.loge("删除光缆", request.user.username, "编号" + name, "deleteCab") return HttpResponse(json.dumps(resp), content_type="application/json")
def FibeView(request): Fb = Fibre.objects.all() size=len(Fb) ok = len(Fb.filter(STATE="已使用")) nook = len(Fb.filter(STATE="未分配")) eoor = len(Fb.filter(STATE="故障")) logprint.loge("查看光纤".encode("utf-8"), request.user.username, "", "query") return render(request, 'polls/FibeView.html', {"ok": ok, "nook": nook, "eoor": eoor, "size": size})
def Wetfirbe(request): name = request.GET.get('id') fibre = ChanelRoute.objects.get(ChanelRouteNumber=name) fibre.ChanelNumber.clear fibre.delete() resp = {'code': 100, 'detail': 'Get success'} logprint.loge("删除波道路由", request.user.username, "编号" + name, "deleteWsr") return HttpResponse(json.dumps(resp), content_type="application/json")
def QureyChannel(request): page = int(request.GET.get('page', 1)) pagesize = int(request.GET.get('pagesize', 10)) channel = request.GET.get('channel') Firbenumber = request.GET.get('Firbenumber') pro = request.GET.get('pro') state = request.GET.get('state') # 查询条件字典 querydict = {} # 查询条件判断 if channel: querydict['Channelname__icontains'] = channel # 查询条件判断 if pro: querydict['Mainman__icontains'] = pro if state: querydict['STATE__icontains'] = state if Firbenumber: querydict['Firbenumber__icontains'] = Firbenumber # 查询结果集 result = Channel.objects.filter( **querydict).order_by("Channelname")[(page - 1) * pagesize:page * pagesize] # 存储查询到的变量值的列表 Modellist = [] # 如果有查询结果 if result: map = math.ceil(len(Channel.objects.filter(**querydict)) / pagesize) for ResultChild in result: # 临时存储单个结果的字典 dictchid = {} dictchid['Channelname'] = ResultChild.Channelname dictchid['Mainman'] = ResultChild.Mainman dictchid['Business'] = ResultChild.Business dictchid['Firbenumber'] = ResultChild.Firbenumber dictchid['STATE'] = ResultChild.STATE Modellist.append(dictchid) logprint.loge("波道查询", request.user.username, "OK", "query") return HttpResponse(json.dumps({ " mo": Modellist, "map": map }), content_type="application/json") else: # 没有查到结果则返回未找到 Errorlist = [] dictchid = {} dictchid['Channelname'] = "未找到" dictchid['Mainman'] = "未找到" dictchid['Business'] = "未找到" dictchid['Firbenumber'] = "未找到" Errorlist.append(dictchid) logprint.loge("波道查询", request.user.username, "未找到", "query") return HttpResponse(json.dumps({"mo": Errorlist}), content_type="application/json")
def userdate(request): username = request.POST.get('username') password = request.POST.get('password') if password!="": fibre = User.objects.get(username=username) fibre.set_password(password) fibre.save() logprint.loge("更新密码", username, "普通用户:" + username, "updateuser") return render(request, 'polls/ok.html') else: return render(request, 'polls/eoor.html')
def Queryfirbe(request): page = int(request.GET.get('page', 1)) pagesize = int(request.GET.get('pagesize', 10)) fire = request.GET.get('firenumber') pro = request.GET.get('protect') cab = request.GET.get('cab') state = request.GET.get('state') querydict = {} # 条件搜索区域 if fire: # 单个查询条件 querydict['FibreName__icontains'] = fire if pro: querydict['MainMan__icontains'] = pro if cab: querydict['Cable__Cablename__icontains'] = cab if state: querydict['STATE__icontains'] = state # 获得总页数 size = math.ceil(len(Fibre.objects.filter(**querydict)) / pagesize) # 准备一个列表 Modellist = [] # 分页查询结果集 result = Fibre.objects.filter(**querydict)[(page - 1) * pagesize:page * pagesize] if result: # 遍历结果 for fix in result: dictchid = {} # 把结果封装到字典里 dictchid['FibreName'] = fix.FibreName dictchid['Cable'] = fix.Cable.Cablename dictchid['MainMan'] = fix.MainMan dictchid['StartData'] = fix.StartData dictchid['STATE'] = fix.STATE dictchid['map'] = size Modellist.append(dictchid) logprint.loge("光纤查询", request.user.username, "成功查询", "query") return HttpResponse(json.dumps(Modellist), content_type="application/json") else: dictchid = {} dictchid['FibreName'] = "未找到" dictchid['Cable'] = "未找到" dictchid['MainMan'] = "未找到" dictchid['StartData'] = "未找到" Modellist.append(dictchid) logprint.loge("光纤查询", request.user.username, "未找到", "query") return HttpResponse(json.dumps(Modellist), content_type="application/json")
def updatepassword(request): us = request.GET.get('username') old=request.GET.get('oldpassword') new =request.GET.get('newpassword') use=User.objects.get(username=us) if use.check_password(old): use.set_password(new) use.groups.add() use.save() logprint.loge("修改密码", us, "普通:" + us+"-修改了密码", "updateuser") return HttpResponse(json.dumps({"yes": "修改成功"}), content_type="application/json") else: return HttpResponse(json.dumps({"yes": "修改失败,旧密码错误"}), content_type="application/json")
def Cabview(request): Fb = Cable.objects.all() paginator = Paginator(Fb, 8) # 每页显示25条 page = request.GET.get('page') try: contacts = paginator.page(page) except PageNotAnInteger: # 如果请求的页数不是整数,返回第一页。 contacts = paginator.page(1) except EmptyPage: # 如果请求的页数不在合法的页数范围内,返回结果的最后一页。 contacts = paginator.page(paginator.num_pages) logprint.loge("查看光缆".encode("utf-8"), request.user.username, "", "query") return render(request, 'polls/CableView.html', {"c": contacts})
def login(request): username = request.POST.get('username') password = request.POST.get('password') if password and username: user = authenticate(username=username, password=password) if user is not None: auth.login(request, user) ip = request.META.get("REMOTE_ADDR", None) logprint.loge("登录", username, "IP:"+ip, "login") return HttpResponseRedirect("index") else: return render(request, 'polls/loginerror.html') else: return render(request, 'polls/loginerror.html')
def newuser(request): us = request.GET.get('username') pa = request.GET.get('password') admin=request.GET.get('admin') if len(User.objects.filter(username=us)) != 0: return HttpResponse(json.dumps({"yes": "用户已存在!"}), content_type="application/json") else: if admin=="true": user = User.objects.create_superuser(us,"*****@*****.**",pa) user.save() logprint.loge("新增用户", request.user.username, "普通用户:"+us, "adduser") return HttpResponse(json.dumps({"yes": "注册成功"}), content_type="application/json") else: user = User.objects.create_user(us) user.set_password(pa) user.save() logprint.loge("新增用户", request.user.username, "管理员:"+us, "adduser") return HttpResponse(json.dumps({"yes": "注册成功"}), content_type="application/json")
def channelupdate(request): newname = request.POST.get('Channelname') acap = request.POST.get('acap') bcap = request.POST.get('bcap') apos = request.POST.get('Aposition') bpos = request.POST.get('Bposition') man = request.POST.get('Mainman') AChannel = request.POST.get('AChannel') BChannel = request.POST.get('BChannel') Aequipment = request.POST.get('Aequipment') Business = request.POST.get('Business') Bequipment = request.POST.get('Bequipment') Aassets = request.POST.get('Aassets') Bassets = request.POST.get('Bassets') Businesss = request.POST.get('Business') Customer = request.POST.get('Customer') bk = request.POST.get('BkMan') state = request.POST.get('STATE') if state != None: fibre = Channel.objects.filter(Channelname=newname) fibre.update(Business=Business.strip(), Customer=Customer.strip(), Channelname=newname.strip(), Acap=acap, Bcap=bcap, Aposition=apos, Bposition=bpos, Aequipment=Aequipment, Bequipment=Bequipment, AChannel=AChannel, BChannel=BChannel, STATE=state, Aassets=Aassets, Bassets=Bassets, Mainman=man, BkMan=bk.strip()) logprint.loge("修改波道", request.user.username, "波道:" + newname, "upadtechannel") return render(request, 'polls/ok.html') else: fibre = Channel.objects.filter(Channelname=newname) fibre.update(Business=Business.strip(), Customer=Customer.strip(), Channelname=newname.strip(), Acap=acap, Bcap=bcap, Aposition=apos, Bposition=bpos, Aequipment=Aequipment, Bequipment=Bequipment, AChannel=AChannel, BChannel=BChannel, Aassets=Aassets, Bassets=Bassets, Mainman=man, BkMan=bk.strip()) logprint.loge("修改波道", request.user.username, "波道:" + newname, "upadtechannel") return render(request, 'polls/ok.html')
def ChannelView(request): logprint.loge("查看波道".encode("utf-8"), request.user.username, "", "query") return render(request, 'polls/Channel.html')\
def Wsr(request): logprint.loge("查看路由", request.user.username, "", "query") return render(request, 'polls/WsRou.html')
def QureyWs(request): page = int(request.GET.get('page', 1)) pagesize = int(request.GET.get('pagesize', 5)) ChanelRouteNumber = request.GET.get('channelname') fir = request.GET.get('firenumber') # 查询条件字典 querydict = {} if ChanelRouteNumber: querydict['ChanelNumber__Channelname__icontains'] = ChanelRouteNumber # 查询条件判断 if fir: querydict['ChanelNumber__Firbes__FibreName__icontains'] = fir Modellist = [] result = ChanelRoute.objects.filter(**querydict)[(page - 1) * pagesize:page * pagesize] if result: exist = [] for ResultChild in result: Fibeset = set() chanset = set() if ResultChild.pk in exist: continue else: exist.append(ResultChild.pk) # 临时存储单个结果的字典 dictchid = {} str = "" dictchid['Business'] = ResultChild.Business dictchid['Mainman'] = ResultChild.Mainman Call = ResultChild.ChanelNumber.all() for cv in Call: fall = cv.Channelname chanset.add(fall + "_") for cls in Call: fall = cls.Firbenumber.strip() if fall in Fibeset: continue else: Fibeset.add(fall) dictchid['ChanelRouteNumber'] = ResultChild.ChanelRouteNumber sccc = str.join(Fibeset) dictchid['FibreName'] = sccc dictchid['ChanelNumbers'] = "".join(chanset) Modellist.append(dictchid) map = math.ceil( len(ChanelRoute.objects.filter(**querydict)) / pagesize) return HttpResponse(json.dumps({ "mo": Modellist, "map": map }), content_type="application/json") else: # 没有查到结果则返回未找到 Errorlist = [] dictchid = {} dictchid['ChanelNumbers'] = "未找到" dictchid['Business'] = "未找到" dictchid['Mainman'] = "未找到" dictchid['ChanelRouteNumber'] = "未找到" Errorlist.append(dictchid) map = 1 logprint.loge("光缆查询", request.user.username, "失败", "query") return HttpResponse(json.dumps({ "mo": Modellist, "map": map }), content_type="application/json")
def Uses(request): if request.user.is_superuser: logprint.loge("查看用户".encode("utf-8"), request.user.username, "", "query") return render(request, 'polls/User.html') else: return render(request, 'polls/Channel.html')
def loginout(request): logprint.loge("退出登录", request.user.username, "用户:"+request.user.username, "loginout") auth.logout(request) return HttpResponseRedirect("login")