def manage_leave(request): if request.method == 'POST': leave_type = request.POST.get('leave_type', '') action_type = request.POST.get('action_type', '') days = request.POST.get('count', '') note = request.POST.get('note', '') try: leave_type = int(leave_type) action_type = int(action_type) days = int(days) except ValueError: messages.error(request, "Invalid Inputs") return redirect(reverse('employees')) if 1 <= leave_type <= 2 and (action_type == -1 or action_type == 1) and days >= 0: count = 0 employees = request.POST.getlist('check[]') action = Action(note=note, ) action.save() for pk in employees: try: employee = Employee.objects.get(pk=pk) except Employee.DoesNotExist: pass else: if action_type == -1 and not employee.isLeaveLeft( days, leave_type): pass else: TransactionLog().AdminTransaction( action, employee, leave_type, days, action_type, note) count = count + 1 if count: messages.success( request, "Leave Credit/Debit of " + str(count) + " employees sent for approval") action.count = count action.save() else: messages.error(request, "Error. No employee selected") action.delete() else: messages.error(request, "Invalid Action") return redirect(reverse('employees')) else: raise PermissionDenied
def manage_leave(request): if request.method=='POST': leave_type=request.POST.get('leave_type','') action_type=request.POST.get('action_type','') days=request.POST.get('count','') note=request.POST.get('note','') try : leave_type=int(leave_type) action_type=int(action_type) days=int(days) except ValueError: messages.error(request,"Invalid Inputs") return redirect(reverse('employees')) if 1<= leave_type <=2 and (action_type==-1 or action_type==1) and days>=0: count=0 employees=request.POST.getlist('check[]') action=Action(note=note,) action.save() for pk in employees: try: employee=Employee.objects.get(pk=pk) except Employee.DoesNotExist: pass else: if action_type==-1 and not employee.isLeaveLeft(days,leave_type): pass else: TransactionLog().AdminTransaction(action,employee,leave_type,days,action_type,note) count=count+1 if count: messages.success(request,"Leave Credit/Debit of "+str(count)+" employees sent for approval") action.count=count action.save() else: messages.error(request,"Error. No employee selected") action.delete() else: messages.error(request,"Invalid Action") return redirect(reverse('employees')) else: raise PermissionDenied