From 4b0fdf8c19769b5b06097b4dba81ddabe5a8e8eb Mon Sep 17 00:00:00 2001 From: Horilla Date: Thu, 14 Sep 2023 11:48:52 +0530 Subject: [PATCH] [UPDT] Delete method updation in leave --- leave/views.py | 74 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 60 insertions(+), 14 deletions(-) diff --git a/leave/views.py b/leave/views.py index 6e5f7e73e..074642480 100644 --- a/leave/views.py +++ b/leave/views.py @@ -26,6 +26,7 @@ from horilla.decorators import manager_can_enter from base.methods import filtersubordinates, choosesubordinates, get_key_instances from django.utils.translation import gettext_lazy as _ from notifications.signals import notify +from django.db.models import ProtectedError @login_required @@ -151,8 +152,13 @@ def leave_type_delete(request, id): Returns: GET : return leave type view template """ - LeaveType.objects.get(id=id).delete() - messages.error(request, _("Leave type deleted successfully..")) + try: + LeaveType.objects.get(id=id).delete() + messages.error(request, _("Leave type deleted successfully..")) + except LeaveType.DoesNotExist: + messages.error(request, _("Leave type not found.")) + except ProtectedError: + messages.error(request, _("Related entries exists")) return redirect(leave_type_view) @@ -347,8 +353,13 @@ def leave_request_delete(request, id): Returns: GET : return leave request view template """ - LeaveRequest.objects.get(id=id).delete() - messages.success(request, _("Leave request deleted successfully..")) + try: + LeaveRequest.objects.get(id=id).delete() + messages.success(request, _("Leave request deleted successfully..")) + except LeaveRequest.DoesNotExist: + messages.error(request, _("Leave request not found.")) + except ProtectedError: + messages.error(request, _("Related entries exists")) return redirect(leave_request_view) @@ -704,8 +715,13 @@ def leave_assign_delete(request, id): Returns: GET : return leave type assigned view template """ - AvailableLeave.objects.get(id=id).delete() - messages.success(request, _("Assigned leave is successfully deleted.")) + try: + AvailableLeave.objects.get(id=id).delete() + messages.success(request, _("Assigned leave is successfully deleted.")) + except AvailableLeave.DoesNotExist: + messages.error(request, _("Assigned leave not found.")) + except ProtectedError: + messages.error(request, _("Related entries exists")) return redirect(leave_assign_view) @@ -833,8 +849,13 @@ def holiday_delete(request, id): Returns: GET : return holiday view template """ - Holiday.objects.get(id=id).delete() - messages.success(request, _("Holiday deleted successfully..")) + try: + Holiday.objects.get(id=id).delete() + messages.success(request, _("Holiday deleted successfully..")) + except Holiday.DoesNotExist: + messages.error(request, _("Holiday not found.")) + except ProtectedError: + messages.error(request, _("Related entries exists")) return redirect(holiday_view) @@ -981,8 +1002,13 @@ def company_leave_delete(request, id): GET : return company leave creation form template POST : return company leave view template """ - CompanyLeave.objects.get(id=id).delete() - messages.success(request, _("Company leave deleted successfully..")) + try: + CompanyLeave.objects.get(id=id).delete() + messages.success(request, _("Company leave deleted successfully..")) + except CompanyLeave.DoesNotExist: + messages.error(request, _("Company leave not found.")) + except ProtectedError: + messages.error(request, _("Related entries exists")) return redirect(company_leave_view) @@ -1226,15 +1252,16 @@ def user_request_delete(request, id): Returns: GET : return user leave request view template """ - leave_request = LeaveRequest.objects.get(id=id) try: + leave_request = LeaveRequest.objects.get(id=id) 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: + except LeaveRequest.DoesNotExist: messages.error(request, _("User has no leave request..")) - return redirect("/") + except ProtectedError: + messages.error(request, _("Related entries exists")) + return redirect(user_request_view) @login_required @@ -1470,3 +1497,22 @@ def overall_leave(request): ) data.append(count) return JsonResponse({"labels": labels, "data": data}) + + +def dashboard(request): + today = date.today() + requested=LeaveRequest.objects.filter(status="requested") + approved=LeaveRequest.objects.filter(status="approved") + cancelled=LeaveRequest.objects.filter(status="cancelled") + holidays = Holiday.objects.filter(start_date__gte = today) + next_holiday = holidays.earliest('start_date') + leave_today=LeaveRequest.objects.filter(~Q(status="cancelled"),start_date__lte=today,end_date__gte=today) + + context = { + "requested":requested, + "approved":approved, + "cancelled":cancelled, + "next_holiday":next_holiday, + "leave_today_employees":leave_today, + } + return render(request,"leave/dashboard.html",context)