Ejemplo n.º 1
0
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)})
Ejemplo n.º 2
0
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!")
Ejemplo n.º 3
0
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})
Ejemplo n.º 4
0
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)})
Ejemplo n.º 5
0
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)
            })
Ejemplo n.º 6
0
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!")
Ejemplo n.º 7
0
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!")
Ejemplo n.º 8
0
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
                })
Ejemplo n.º 9
0
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})
Ejemplo n.º 10
0
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})
Ejemplo n.º 11
0
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});
Ejemplo n.º 12
0
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!")
Ejemplo n.º 13
0
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)
            })
Ejemplo n.º 14
0
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
    })
Ejemplo n.º 15
0
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")
Ejemplo n.º 16
0
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")
Ejemplo n.º 17
0
def checkSME(request):
	if not isAuth(request,'nocops'):
		return HttpResponseRedirect('/')
	return render(request,'noc/checkSME.html',{'logs':json.dumps(dutylistFormat(),default = json_serial)});
Ejemplo n.º 18
0
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
        })
Ejemplo n.º 19
0
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})
Ejemplo n.º 20
0
def checkSME(request):
    if not isAuth(request, 'nocops'):
        return HttpResponseRedirect('/')
    return render(request, 'noc/checkSME.html',
                  {'logs': json.dumps(dutylistFormat(), default=json_serial)})