def index(request,name): if not isAuth(request,'managerops') and not isAuth(request,'SME'): return HttpResponseRedirect('/') team = getSessionTeamInfo(request) if not team: return render(request,'registration/noactive.html') currentTeam = team[0].name if name != currentTeam: return HttpResponseRedirect(reverse('managerindex', args=[currentTeam])) if request.method == 'POST': #take request from html page start= request.POST.get('startdate') end =request.POST.get('enddate') idlist = request.POST.getlist('employee') #onduty log file onDutySave(name, start,end,idlist) #update log file logSave(name,employeelist,start,end) return HttpResponseRedirect(reverse('managerindex', args=[currentTeam])) else:#get method emp = employee.objects.filter(department__name =name) opLog = onDuty.objects.filter(department__name = name).order_by('-endDate') return render(request,'manager/index.html',{'emp':emp,'team':name, 'logs':json.dumps(logformat(opLog),default = json_serial)})
def updateSchedule(request, team): if not isAuth(request, 'managerops') and not isAuth(request, 'SME'): return HttpResponseRedirect('/') temp = getSessionTeamInfo(request) if not temp: return render(request, 'registration/noactive.html') currentTeam = temp[0].name if team != currentTeam: return HttpResponseRedirect(reverse('managerindex', args=[currentTeam])) if request.method == 'POST': start = request.POST.get('startdate') end = request.POST.get('enddate') logid = request.POST.get('log_id') user = onDuty.objects.filter(id=logid)[0].employee # user = request.POST.get('user') onDuty.objects.filter(id=logid).update( startDate=parser.parse(start).strftime("%Y-%m-%d %H:%M"), endDate=parser.parse(end).strftime("%Y-%m-%d %H:%M"), employee_id=user) return HttpResponseRedirect(reverse('managerschdule', args=[team])) else: return HttpResponse("fail!")
def uploadSchedule(request,team): if not isAuth(request,'managerops') and not isAuth(request,'SME'): return HttpResponseRedirect('/') temp = getSessionTeamInfo(request) if not temp: return render(request,'registration/noactive.html') currentTeam = temp[0].name if team != currentTeam: return HttpResponseRedirect(reverse('managerindex', args=[currentTeam])) if request.method =='POST': # try: fileObj = request.FILES['files'] data = readCSV(fileObj) #current file data if not data: return render(request,'manager/errorUpload.html',{'team':team}) emailEmp,nameEmp,departId= employeeIdPair(team) # all current employee list by name and email wrongName,wrongFormat,wrongDate,insertionVal,employeeid = examinedata(data,emailEmp,nameEmp,departId) if len(wrongDate) ==0 and len(wrongFormat)==0 and len(wrongName) ==0: print insertionVal #everything is ok, insert into data base for record in insertionVal: case = onDuty(startDate = parser.parse(record[1]).strftime("%Y-%m-%d %H:%M"),endDate = parser.parse(record[2]).strftime("%Y-%m-%d %H:%M"),department_id=departId,employee_id = employeeid) case.save() return HttpResponseRedirect(reverse('managerschdule', args=[team])) else: return render(request,'manager/errorDetail.html',{'team':team,'wrongDate':wrongDate,'wrongFormat':wrongFormat,'wrongName':wrongName})
def addSchedule(request,team): #avoid cross visit if not isAuth(request,'managerops') and not isAuth(request,'SME'): return HttpResponseRedirect('/') temp = getSessionTeamInfo(request) if not temp: return render(request,'registration/noactive.html') currentTeam = temp[0].name if team != currentTeam: return HttpResponseRedirect(reverse('managerindex', args=[currentTeam])) if request.method == 'POST': #take request from html page start= request.POST.get('startdate') end =request.POST.get('enddate') idlist = request.POST.get('user') #onduty log file onDutySave(team, start,end,idlist) #update log file logSave(team,idlist,start,end) return HttpResponseRedirect(reverse('managerschdule', args=[team])) else:#get method emp = employee.objects.filter(department__name =team) opLog = onDuty.objects.filter(department__name = team).order_by('-endDate') return render(request,'manager/setschedule.html',{'emp':emp,'team':team, 'log':logformat(opLog),'logs':json.dumps(logformat(opLog),default = json_serial)})
def addSchedule(request, team): #avoid cross visit if not isAuth(request, 'managerops') and not isAuth(request, 'SME'): return HttpResponseRedirect('/') temp = getSessionTeamInfo(request) if not temp: return render(request, 'registration/noactive.html') currentTeam = temp[0].name if team != currentTeam: return HttpResponseRedirect(reverse('managerindex', args=[currentTeam])) if request.method == 'POST': #take request from html page start = request.POST.get('startdate') end = request.POST.get('enddate') idlist = request.POST.get('user') #onduty log file onDutySave(team, start, end, idlist) #update log file logSave(team, idlist, start, end) return HttpResponseRedirect(reverse('managerschdule', args=[team])) else: #get method emp = employee.objects.filter(department__name=team) opLog = onDuty.objects.filter( department__name=team).order_by('-endDate') return render( request, 'manager/setschedule.html', { 'emp': emp, 'team': team, 'log': logformat(opLog), 'logs': json.dumps(logformat(opLog), default=json_serial) })
def deleteAllSchedule(request,team): if not isAuth(request,'managerops') and not isAuth(request,'SME'): return HttpResponseRedirect('/') temp = getSessionTeamInfo(request) if not temp: return render(request,'registration/noactive.html') currentTeam = temp[0].name if team != currentTeam: return HttpResponseRedirect(reverse('managerindex', args=[currentTeam])) if request.method=='POST': onDuty.objects.filter(department__name=team).delete() return HttpResponseRedirect(reverse('managerschdule', args=[team])) else: return HttpResponse("fail!")
def deleteAllSchedule(request, team): if not isAuth(request, 'managerops') and not isAuth(request, 'SME'): return HttpResponseRedirect('/') temp = getSessionTeamInfo(request) if not temp: return render(request, 'registration/noactive.html') currentTeam = temp[0].name if team != currentTeam: return HttpResponseRedirect(reverse('managerindex', args=[currentTeam])) if request.method == 'POST': onDuty.objects.filter(department__name=team).delete() return HttpResponseRedirect(reverse('managerschdule', args=[team])) else: return HttpResponse("fail!")
def uploadSchedule(request, team): if not isAuth(request, 'managerops') and not isAuth(request, 'SME'): return HttpResponseRedirect('/') temp = getSessionTeamInfo(request) if not temp: return render(request, 'registration/noactive.html') currentTeam = temp[0].name if team != currentTeam: return HttpResponseRedirect(reverse('managerindex', args=[currentTeam])) if request.method == 'POST': # try: fileObj = request.FILES['files'] data = readCSV(fileObj) #current file data if not data: return render(request, 'manager/errorUpload.html', {'team': team}) emailEmp, nameEmp, departId = employeeIdPair( team) # all current employee list by name and email wrongName, wrongFormat, wrongDate, insertionVal, employeeid = examinedata( data, emailEmp, nameEmp, departId) if len(wrongDate) == 0 and len(wrongFormat) == 0 and len( wrongName) == 0: print insertionVal #everything is ok, insert into data base for record in insertionVal: case = onDuty(startDate=parser.parse( record[1]).strftime("%Y-%m-%d %H:%M"), endDate=parser.parse( record[2]).strftime("%Y-%m-%d %H:%M"), department_id=departId, employee_id=employeeid) case.save() return HttpResponseRedirect(reverse('managerschdule', args=[team])) else: return render( request, 'manager/errorDetail.html', { 'team': team, 'wrongDate': wrongDate, 'wrongFormat': wrongFormat, 'wrongName': wrongName })
def index(request): if not isAuth(request,'nocops'): return HttpResponseRedirect('/') bridgeSet = bridge.objects.all() if bridgeSet: oldNumber = bridgeSet[:1][0].number else: oldNumber ='' logs = logFormat() return render(request,'noc/index.html',{ 'log':logs,'number':oldNumber})
def checkSMETable(request): if not isAuth(request, 'nocops'): return HttpResponseRedirect('/') next24 = getNext24PST() # next 24 hour end time current = getcurrentPST() departlist = [item['name'] for item in department.objects.values('name')] logs = [] for depart in departlist: temp = getOnDutyByDeparment(depart, next24, current) if temp: logs.extend(temp) return render(request, 'noc/checkSMETable.html', {'logs': logs})
def checkSMETable(request): if not isAuth(request,'nocops'): return HttpResponseRedirect('/') next24 = getNext24PST() # next 24 hour end time current = getcurrentPST() departlist = [item['name'] for item in department.objects.values('name')] logs = [] for depart in departlist: temp = getOnDutyByDeparment(depart,next24,current) if temp: logs.extend(temp) return render(request,'noc/checkSMETable.html',{'logs':logs});
def updateSchedule(request,team): if not isAuth(request,'managerops') and not isAuth(request,'SME'): return HttpResponseRedirect('/') temp = getSessionTeamInfo(request) if not temp: return render(request,'registration/noactive.html') currentTeam = temp[0].name if team != currentTeam: return HttpResponseRedirect(reverse('managerindex', args=[currentTeam])) if request.method=='POST': start= request.POST.get('startdate') end =request.POST.get('enddate') logid = request.POST.get('log_id') user = onDuty.objects.filter(id=logid)[0].employee # user = request.POST.get('user') onDuty.objects.filter(id=logid).update(startDate = parser.parse(start).strftime("%Y-%m-%d %H:%M"), endDate = parser.parse(end).strftime("%Y-%m-%d %H:%M"), employee_id = user) return HttpResponseRedirect(reverse('managerschdule', args=[team])) else: return HttpResponse("fail!")
def index(request, name): if not isAuth(request, 'managerops') and not isAuth(request, 'SME'): return HttpResponseRedirect('/') team = getSessionTeamInfo(request) if not team: return render(request, 'registration/noactive.html') currentTeam = team[0].name if name != currentTeam: return HttpResponseRedirect(reverse('managerindex', args=[currentTeam])) if request.method == 'POST': #take request from html page start = request.POST.get('startdate') end = request.POST.get('enddate') idlist = request.POST.getlist('employee') #onduty log file onDutySave(name, start, end, idlist) #update log file logSave(name, employeelist, start, end) return HttpResponseRedirect(reverse('managerindex', args=[currentTeam])) else: #get method emp = employee.objects.filter(department__name=name) opLog = onDuty.objects.filter( department__name=name).order_by('-endDate') return render( request, 'manager/index.html', { 'emp': emp, 'team': name, 'logs': json.dumps(logformat(opLog), default=json_serial) })
def index(request): if not isAuth(request, 'nocops'): return HttpResponseRedirect('/') bridgeSet = bridge.objects.all() if bridgeSet: oldNumber = bridgeSet[:1][0].number else: oldNumber = '' logs = logFormat() return render(request, 'noc/index.html', { 'log': logs, 'number': oldNumber })
def setBridgeTicket(request): #avoid cross visit if not isAuth(request,'nocops'): return HttpResponseRedirect('/') if request.method == 'POST': #take request from html page bridgeNum= request.POST.get('bridge') bridgeSet = bridge.objects.all() # //if no data in db ,insert if not bridgeSet: item = bridge(number = bridgeNum) item.save() # orelse, update else: oldNumber = bridge.objects.all()[:1][0].number bridge.objects.filter(number=oldNumber).update(number = bridgeNum) return HttpResponseRedirect(reverse('nocaddticket')) else:#get method return HttpResponse("Wrong way,Turn back")
def setBridgeTicket(request): #avoid cross visit if not isAuth(request, 'nocops'): return HttpResponseRedirect('/') if request.method == 'POST': #take request from html page bridgeNum = request.POST.get('bridge') bridgeSet = bridge.objects.all() # //if no data in db ,insert if not bridgeSet: item = bridge(number=bridgeNum) item.save() # orelse, update else: oldNumber = bridge.objects.all()[:1][0].number bridge.objects.filter(number=oldNumber).update(number=bridgeNum) return HttpResponseRedirect(reverse('nocaddticket')) else: #get method return HttpResponse("Wrong way,Turn back")
def checkSME(request): if not isAuth(request,'nocops'): return HttpResponseRedirect('/') return render(request,'noc/checkSME.html',{'logs':json.dumps(dutylistFormat(),default = json_serial)});
def addTicket(request): if not isAuth(request, 'nocops'): return HttpResponseRedirect('/') if request.method == 'POST': form = NocOpsForm(request.POST) escalate = [str(x) for x in request.POST.getlist('escalate')] departlist = [str(x) for x in request.POST.getlist('depart')] superescalate = [str(x) for x in request.POST.getlist('superescalate')] if form.is_valid( ) or not escalate and not departlist and not superescalate: #receive request's paramter from html escalateList = Set(getManagers(escalate)) superescalateList = Set(getManagers(superescalate)) oncallList = Set(getOnCallEmployees(departlist)) bridgeNumber = request.POST.get('bridge') print escalateList print superescalateList print oncallList # receiverList = [] # receiverList.extend(escalateList) # receiverList.extend(oncallList) # receiverList.extend(superescalateList) ticket = form.cleaned_data['Ticket'] #list(oncallList) subject = request.POST.get('subject') # data base flag to save on the log # dbFlag = False # extraList = # if bool(escalateList) or bool(superescalateList) or bool(oncallList): # extraList = ['*****@*****.**','*****@*****.**'] # # ,'*****@*****.**','*****@*****.**'] # receiverList.extend(extraList) # dbFlag = True # send_email("*****@*****.**", "Five9321!",'*****@*****.**',receiverList, subject," Outrage bridge#:"+ bridgeNumber+"\nOutage/Service Alert #: "+ticket+" \n-Alert sent by "+request.user.username) oncallFlag = False escalateFlag = False extraList = [ '*****@*****.**', '*****@*****.**', '*****@*****.**' ] #email sent if bool(oncallList): oncallExtraList = list(oncallList) oncallExtraList.extend(extraList) # send_email("*****@*****.**", "Five9ossqa",list(oncallList), subject," Outrage bridge#:"+ bridgeNumber+"\nOutage/Service Alert #: "+ticket) send_email( "*****@*****.**", "Five9321!", '*****@*****.**', oncallExtraList, subject, " Outrage bridge#:" + bridgeNumber + "\nOutage/Service Alert #: " + ticket + " \n-Alert sent by " + request.user.username) oncallFlag = True if bool(escalateList): escalateExtraList = list(escalateList) escalateExtraList.extend(extraList) send_email( "*****@*****.**", "Five9321!", '*****@*****.**', escalateExtraList, subject, " Outrage bridge#:" + bridgeNumber + "\nOutage/Service Alert #: " + ticket + " \n-Alert sent by " + request.user.username) escalateFlag = True if bool(superescalateList): superExtraList = list(superescalateList) superExtraList.extend(extraList) send_email( "*****@*****.**", "Five9321!", '*****@*****.**', superExtraList, subject, " Outrage bridge#:" + bridgeNumber + "\nOutage/Service Alert #: " + ticket + " \n-Alert sent by " + request.user.username) #update log of Noc operation ''' if escalate flag or oncall flag is set up, then save to log; otherwise, no ''' if bool(oncallList) and oncallFlag: record = log(datetime=getcurrentPST(), ticketnumber=ticket, oncallUser=list(oncallList), departments=json.dumps(departlist), escalate=False, bridge=bridgeNumber, management=json.dumps(superescalate), nocEmp=request.user) record.save() if bool(escalateList) and escalateFlag: record = log(datetime=getcurrentPST(), ticketnumber=ticket, oncallUser=list(escalateList), departments=json.dumps(escalate), escalate=True, bridge=bridgeNumber, management=json.dumps(superescalate), nocEmp=request.user) record.save() return HttpResponseRedirect('/noc') else: return render(request, 'noc/no_data.html') else: form = NocOpsForm() alldepartment = department.objects.filter(highRank=0) allsuperdepartment = department.objects.filter(highRank=1) listOfDepartments, departNoExist = getNoEmpList(alldepartment) listOfSuperDepartments, superdepartNoExist = getNoEmpList( allsuperdepartment) bridgeSet = bridge.objects.all() if bridgeSet: oldNumber = bridge.objects.all()[:1][0].number else: oldNumber = '' print listOfDepartments print departNoExist print listOfSuperDepartments print superdepartNoExist return render( request, 'noc/addTicket.html', { 'form': form, 'listOfDepartments': listOfDepartments, 'departNoExist': departNoExist, 'superdepartNoExist': superdepartNoExist, 'listOfSuperDepartments': listOfSuperDepartments, 'number': oldNumber })
def addTicket(request): if not isAuth(request,'nocops'): return HttpResponseRedirect('/') if request.method == 'POST': form = NocOpsForm(request.POST) escalate = [str(x) for x in request.POST.getlist('escalate')] departlist = [str(x) for x in request.POST.getlist('depart')] superescalate = [str(x) for x in request.POST.getlist('superescalate')] if form.is_valid() or not escalate and not departlist and not superescalate: #receive request's paramter from html escalateList = Set(getManagers(escalate)) superescalateList = Set(getManagers(superescalate)) oncallList = Set(getOnCallEmployees(departlist)) bridgeNumber = request.POST.get('bridge') print escalateList print superescalateList print oncallList # receiverList = [] # receiverList.extend(escalateList) # receiverList.extend(oncallList) # receiverList.extend(superescalateList) ticket = form.cleaned_data['Ticket']#list(oncallList) subject = request.POST.get('subject') # data base flag to save on the log # dbFlag = False # extraList = # if bool(escalateList) or bool(superescalateList) or bool(oncallList): # extraList = ['*****@*****.**','*****@*****.**'] # # ,'*****@*****.**','*****@*****.**'] # receiverList.extend(extraList) # dbFlag = True # send_email("*****@*****.**", "Five9321!",'*****@*****.**',receiverList, subject," Outrage bridge#:"+ bridgeNumber+"\nOutage/Service Alert #: "+ticket+" \n-Alert sent by "+request.user.username) oncallFlag = False escalateFlag= False extraList = ['*****@*****.**','*****@*****.**','*****@*****.**'] #email sent if bool(oncallList): oncallExtraList=list(oncallList) oncallExtraList.extend(extraList) # send_email("*****@*****.**", "Five9ossqa",list(oncallList), subject," Outrage bridge#:"+ bridgeNumber+"\nOutage/Service Alert #: "+ticket) send_email("*****@*****.**", "Five9321!",'*****@*****.**',oncallExtraList, subject," Outrage bridge#:"+ bridgeNumber+"\nOutage/Service Alert #: "+ticket+" \n-Alert sent by "+request.user.username) oncallFlag = True if bool(escalateList): escalateExtraList = list(escalateList) escalateExtraList.extend(extraList) send_email("*****@*****.**", "Five9321!",'*****@*****.**',escalateExtraList, subject," Outrage bridge#:"+ bridgeNumber+"\nOutage/Service Alert #: "+ticket+" \n-Alert sent by "+request.user.username) escalateFlag = True if bool(superescalateList): superExtraList = list(superescalateList) superExtraList.extend(extraList) send_email("*****@*****.**", "Five9321!",'*****@*****.**',superExtraList, subject," Outrage bridge#:"+ bridgeNumber+"\nOutage/Service Alert #: "+ticket+" \n-Alert sent by "+request.user.username) #update log of Noc operation ''' if escalate flag or oncall flag is set up, then save to log; otherwise, no ''' if bool(oncallList) and oncallFlag: record = log(datetime = getcurrentPST(), ticketnumber = ticket, oncallUser = list(oncallList) , departments = json.dumps(departlist),escalate = False, bridge = bridgeNumber, management = json.dumps(superescalate), nocEmp = request.user) record.save() if bool(escalateList) and escalateFlag: record = log(datetime = getcurrentPST(), ticketnumber = ticket, oncallUser = list(escalateList) , departments = json.dumps(escalate),escalate = True, bridge = bridgeNumber, management = json.dumps(superescalate),nocEmp = request.user) record.save() return HttpResponseRedirect('/noc'); else: return render(request,'noc/no_data.html'); else: form = NocOpsForm() alldepartment = department.objects.filter(highRank =0) allsuperdepartment = department.objects.filter(highRank = 1) listOfDepartments,departNoExist = getNoEmpList(alldepartment) listOfSuperDepartments,superdepartNoExist=getNoEmpList(allsuperdepartment) bridgeSet = bridge.objects.all() if bridgeSet: oldNumber = bridge.objects.all()[:1][0].number else: oldNumber ='' print listOfDepartments print departNoExist print listOfSuperDepartments print superdepartNoExist return render(request,'noc/addTicket.html',{'form':form, 'listOfDepartments':listOfDepartments,'departNoExist':departNoExist,'superdepartNoExist':superdepartNoExist,'listOfSuperDepartments':listOfSuperDepartments,'number':oldNumber})
def checkSME(request): if not isAuth(request, 'nocops'): return HttpResponseRedirect('/') return render(request, 'noc/checkSME.html', {'logs': json.dumps(dutylistFormat(), default=json_serial)})