From f078ef62af029147b7a0ccc911c3d5d243a6ff91 Mon Sep 17 00:00:00 2001 From: Nikhil Date: Mon, 3 Jul 2023 11:21:03 +0530 Subject: [PATCH] [FIX]leave bug fixes --- leave/views.py | 169 +++++++++++++++++++++++++++++-------------------- 1 file changed, 102 insertions(+), 67 deletions(-) diff --git a/leave/views.py b/leave/views.py index 0668a167b..cffd9d3fc 100644 --- a/leave/views.py +++ b/leave/views.py @@ -911,7 +911,7 @@ def company_leave_update(request, id): if form.is_valid(): form.save() messages.info(request, _("Company leave updated successfully..")) - response = render( + response = render( request, "leave/company-leave-update-form.html", {"form": form, "id": id}, @@ -922,7 +922,7 @@ def company_leave_update(request, id): ) return render( request, "leave/company-leave-update-form.html", { - "form": form, "id": id} + "form": form, "id": id} ) @@ -975,10 +975,10 @@ def user_leave_request(request, id): start_date__lte=end_date, end_date__gte=start_date ) if overlapping_requests.exists(): - form.add_error( + form.add_error( None, _("There is already a leave request for this date range..")) elif requested_days <= available_total_leave: - if form.is_valid(): + if form.is_valid(): leave_request = form.save(commit=False) leave_request.leave_type_id = leave_type leave_request.employee_id = employee @@ -1004,7 +1004,7 @@ def user_leave_request(request, id): leave_request.save() messages.success(request, _( 'Leave request created successfully..')) - with contextlib.suppress(Exception): + with contextlib.suppress(Exception): notify.send( request.user.employee_get, recipient=leave_request.employee_id.employee_work_info.reporting_manager_id.employee_user_id, @@ -1036,22 +1036,27 @@ def user_request_update(request, id): POST : return user leave request view template """ leave_request = LeaveRequest.objects.get(id=id) - form = UserLeaveRequestForm(instance=leave_request) - if request.method == "POST": - form = UserLeaveRequestForm( - request.POST, request.FILES, instance=leave_request) - if form.is_valid(): - form.save() - messages.info(request, _("Leave request updated successfully..")) - response = render( - request, "leave/user-request-update.html", { - "form": form, "id": id} - ) - return HttpResponse( - response.content.decode("utf-8") - + "" - ) - return render(request, "leave/user-request-update.html", {"form": form, "id": id}) + try: + if request.user.employee_get == leave_request.employee_id: + form = UserLeaveRequestForm(instance=leave_request) + if request.method == "POST": + form = UserLeaveRequestForm( + request.POST, request.FILES, instance=leave_request) + if form.is_valid(): + form.save() + messages.info(request, _("Leave request updated successfully..")) + response = render( + request, "leave/user-request-update.html", { + "form": form, "id": id} + ) + return HttpResponse( + response.content.decode("utf-8") + + "" + ) + return render(request, "leave/user-request-update.html", {"form": form, "id": id}) + except Exception as e: + messages.error(request, _("User has no leave request..")) + @login_required @@ -1066,9 +1071,16 @@ def user_request_delete(request, id): Returns: GET : return user leave request view template """ - LeaveRequest.objects.get(id=id).delete() - messages.success(request, _("Leave request deleted successfully..")) - return redirect(user_request_view) + leave_request = LeaveRequest.objects.get(id=id) + try: + if request.user.employee_get == leave_request.employee_id: + LeaveRequest.objects.get(id=id).delete() + messages.success(request, _("Leave request deleted successfully..")) + return redirect(user_request_view) + except Exception as e: + messages.error(request, _("User has no leave request..")) + return redirect('/') + @login_required @@ -1094,12 +1106,14 @@ def user_leave_view(request): "leave/user-leave-view.html", { "user_leaves": page_obj, - "form": assigned_leave_filter.form, + "form": assigned_leave_filter.form, "pd": previous_data, }, ) except Exception: - return HttpResponse("User is not an employee") + messages.error(request, _("User is not an employee..")) + return redirect('/') + @login_required @@ -1114,17 +1128,21 @@ def user_leave_filter(request): Returns: GET : return user assigned leave types view template """ - employee = request.user.employee_get - queryset = employee.available_leave.all() - previous_data = request.environ["QUERY_STRING"] - page_number = request.GET.get("page") - assigned_leave_filter = AssignedLeavefilter(request.GET, queryset).qs - page_obj = paginator_qry(assigned_leave_filter, page_number) - return render( - request, - "leave/user_leave/user-leave.html", - {"user_leaves": page_obj, "pd": previous_data}, - ) + try: + employee = request.user.employee_get + queryset = employee.available_leave.all() + previous_data = request.environ["QUERY_STRING"] + page_number = request.GET.get("page") + assigned_leave_filter = AssignedLeavefilter(request.GET, queryset).qs + page_obj = paginator_qry(assigned_leave_filter, page_number) + return render( + request, + "leave/user_leave/user-leave.html", + {"user_leaves": page_obj, "pd": previous_data}, + ) + except Exception as e: + messages.error(request, _("User is not an employee..")) + return redirect('/') @login_required @@ -1138,21 +1156,27 @@ def user_request_view(request): Returns: GET : return user leave request view template """ - user = request.user.employee_get - queryset = user.leaverequest_set.all() - previous_data = request.environ["QUERY_STRING"] - page_number = request.GET.get("page") - page_obj = paginator_qry(queryset, page_number) - user_request_filter = userLeaveRequestFilter() - return render( - request, - "leave/user-request-view.html", - { - "leave_requests": page_obj, - "form": user_request_filter.form, - "pd": previous_data, - }, - ) + try: + user = request.user.employee_get + queryset = user.leaverequest_set.all() + previous_data = request.environ["QUERY_STRING"] + page_number = request.GET.get("page") + page_obj = paginator_qry(queryset, page_number) + user_request_filter = userLeaveRequestFilter() + return render( + request, + "leave/user-request-view.html", + { + "leave_requests": page_obj, + "form": user_request_filter.form, + "pd": previous_data, + }, + ) + except Exception as e: + messages.error(request, _("User is not an employee..")) + return redirect('/') + + @login_required @@ -1167,20 +1191,26 @@ def user_request_filter(request): Returns: GET : return user leave request view template """ - user = request.user.employee_get - queryset = user.leaverequest_set.all() - previous_data = request.environ["QUERY_STRING"] - page_number = request.GET.get("page") - user_request_filter = userLeaveRequestFilter(request.GET, queryset).qs - page_obj = paginator_qry(user_request_filter, page_number) - return render( - request, - "leave/user-requests.html", - {"leave_requests": page_obj, "pd": previous_data}, - ) + try: + user = request.user.employee_get + queryset = user.leaverequest_set.all() + previous_data = request.environ["QUERY_STRING"] + page_number = request.GET.get("page") + user_request_filter = userLeaveRequestFilter(request.GET, queryset).qs + page_obj = paginator_qry(user_request_filter, page_number) + return render( + request, + "leave/user-requests.html", + {"leave_requests": page_obj, "pd": previous_data}, + ) + except Exception as e: + messages.error(request, _("User is not an employee..")) + return redirect('/') + @login_required +@hx_request_required def user_request_one(request, id): """ function used to view one user leave request. @@ -1192,10 +1222,15 @@ def user_request_one(request, id): GET : return one user leave request view template """ leave_request = LeaveRequest.objects.get(id=id) - return render( - request, "leave/user-request-one.html", { - "leave_request": leave_request} - ) + try: + if request.user.employee_get == leave_request.employee_id: + return render( + request, "leave/user-request-one.html", { + "leave_request": leave_request} + ) + except Exception as e: + messages.error(request, _('User has no leave request..')) + return redirect('/') @login_required