[FIX] LEAVE: Rejection and cancel reason in leave request view

This commit is contained in:
Horilla
2023-10-20 14:50:58 +05:30
parent 26bf874965
commit 5cdf40710c
5 changed files with 41 additions and 23 deletions

View File

@@ -73,8 +73,8 @@
<div class="oh-sticky-table__td {% if leave_request.status == 'cancelled' %} diff-cell{% endif %}">{{leave_request.requested_days}}</div>
<div class="oh-sticky-table__td {% if leave_request.status == 'cancelled' %} diff-cell{% endif %}">{{leave_request.get_status_display}}</div>
{% if not dashboard %}
<div class="oh-sticky-table__td">
<div class="oh-btn-group" onclick="event.stopPropagation()">
<div class="oh-sticky-table__td" onclick="event.stopPropagation()">
<div class="oh-btn-group" >
{% if leave_request.status == 'requested' or leave_request.status == 'rejected' %}
<a type="submit" href="{% url 'request-approve' leave_request.id %}" title="{% trans 'Approve' %}"
class="oh-btn oh-btn--success w-100">
@@ -106,7 +106,7 @@
</div>
<div class="oh-sticky-table__td" onclick="event.stopPropagation()">
<div class="oh-btn-group">
<button onclick="event.stopPropagation()" class="oh-btn oh-btn--light-bkg w-100" title="{% trans 'Edit' %}" data-toggle="oh-modal-toggle"
<button class="oh-btn oh-btn--light-bkg w-100" title="{% trans 'Edit' %}" data-toggle="oh-modal-toggle"
data-target="#editModal2" hx-get="{% url 'request-update' leave_request.id %}"
hx-target="#updateForm"><ion-icon name="create-outline"></ion-icon></button>

View File

@@ -57,12 +57,21 @@
</div>
</div>
{% if leave_request.reject_reason %}
<div class="oh-timeoff-modal__stats w-100 mt-3 {% if leave_request.status == "cancelled" %} p-2 row-status--gray diff-cell{% endif %}">
<div class="oh-timeoff-modal__stat">
<span class="oh-timeoff-modal__stat-title">{% trans "Reason for Cancel/Reject" %}</span>
<div class="oh-timeoff-modal__stat-description">{{leave_request.reject_reason}}</div>
{% if leave_request.status == "cancelled" %}
<div class="oh-timeoff-modal__stats w-100 mt-3 p-2 row-status--gray diff-cell">
<div class="oh-timeoff-modal__stat">
<span class="oh-timeoff-modal__stat-title">{% trans "Reason for Canceltion" %}</span>
<div class="oh-timeoff-modal__stat-description">{{leave_request.reject_reason}}</div>
</div>
</div>
</div>
{% elif leave_request.status == "rejected" %}
<div class="oh-timeoff-modal__stats w-100 mt-3 p-2 row-status--red ">
<div class="oh-timeoff-modal__stat">
<span class="oh-timeoff-modal__stat-title">{% trans "Reason for Rejecttion" %}</span>
<div class="oh-timeoff-modal__stat-description">{{leave_request.reject_reason}}</div>
</div>
</div>
{% endif %}
{% endif %}
{% if leave_request.attachment %}
<a href="{{leave_request.attachment.url}}" target="_blank" class="oh-timeoff-modal__download-link">

View File

@@ -43,12 +43,21 @@
</div>
</div>
{% if leave_request.reject_reason %}
<div class="oh-timeoff-modal__stats w-100 mt-3 {% if leave_request.status == "rejected" %} p-2 row-status--gray diff-cell{% endif %}">
{% if leave_request.status == "rejected" %}
<div class="oh-timeoff-modal__stats w-100 mt-3 p-2 row-status--gray diff-cell">
<div class="oh-timeoff-modal__stat">
<span class="oh-timeoff-modal__stat-title">{% trans "Reason for Cancel/Reject" %}</span>
<span class="oh-timeoff-modal__stat-title">{% trans "Reason for Rejection" %}</span>
<div class="oh-timeoff-modal__stat-description">{{leave_request.reject_reason}}</div>
</div>
</div>
{% elif leave_request.status == "cancelled" %}
<div class="oh-timeoff-modal__stats w-100 mt-3 p-2 row-status--gray diff-cell">
<div class="oh-timeoff-modal__stat">
<span class="oh-timeoff-modal__stat-title">{% trans "Reason for Cancellation" %}</span>
<div class="oh-timeoff-modal__stat-description">{{leave_request.reject_reason}}</div>
</div>
</div>
{% endif %}
{% endif %}
{% if leave_request.attachment %}
<a href="{{leave_request.attachment.url}}" target="_blank" class="oh-timeoff-modal__download-link">

View File

@@ -40,7 +40,6 @@
<div class="oh-sticky-table__th">{% trans "Start Date" %}</div>
<div class="oh-sticky-table__th">{% trans "End Date" %}</div>
<div class="oh-sticky-table__th">{% trans "Requested days" %}</div>
<div class="oh-sticky-table__th">{% trans "Reason" %}</div>
<div class="oh-sticky-table__th">{% trans "Status" %}</div>
<div class="oh-sticky-table__th"></div>
<div class="oh-sticky-table__th">{% trans "Actions" %}</div>
@@ -48,9 +47,9 @@
</div>
<div class="oh-sticky-table__tbody">
{% for leave_request in leave_requests %}
<div class="oh-sticky-table__tr" draggable="true">
<div class="oh-sticky-table__sd {% if leave_request.status == "requested" %}row-status--orange {% elif leave_request.status == "cancelled" %} row-status--gray {% elif leave_request.status == "approved" %} row-status--yellow {% elif leave_request.status == "rejected" %} row-status--red{% endif %}" data-toggle="oh-modal-toggle" data-target="#tableTimeOff"
hx-get="{% url 'user-request-one' leave_request.id %}" hx-target="#userRequestView">
<div class="oh-sticky-table__tr" data-toggle="oh-modal-toggle" data-target="#tableTimeOff"
hx-get="{% url 'user-request-one' leave_request.id %}" hx-target="#userRequestView">
<div class="oh-sticky-table__sd {% if leave_request.status == "requested" %}row-status--orange {% elif leave_request.status == "cancelled" %} row-status--gray {% elif leave_request.status == "approved" %} row-status--yellow {% elif leave_request.status == "rejected" %} row-status--red{% endif %}" >
<div class="oh-profile oh-profile--md">
<div class="oh-profile__avatar mr-1">
{% if leave_request.leave_type_id.icon %}
@@ -67,23 +66,22 @@
<div class="oh-sticky-table__td {% if leave_request.status == 'rejected' %} diff-cell{% endif %}"> {{leave_request.start_date}}</div>
<div class="oh-sticky-table__td {% if leave_request.status == 'rejected' %} diff-cell{% endif %}">{{leave_request.end_date}}</div>
<div class="oh-sticky-table__td {% if leave_request.status == 'rejected' %} diff-cell{% endif %}">{{leave_request.requested_days}}</div>
<div class="oh-sticky-table__td {% if leave_request.status == 'rejected' %} diff-cell{% endif %}">{{leave_request.reject_reason}}</div>
<div class="oh-sticky-table__td {% if leave_request.status == 'rejected' %} diff-cell{% endif %}">{{leave_request.get_status_display}}</div>
<div class="oh-sticky-table__td" onclick="event.stopPropagation()">
{% if leave_request.status == 'approved' %}
<div class="oh-sticky-table__td">
{% if leave_request.end_date >= current_date %}
<a type="submit" data-toggle="oh-modal-toggle"
data-target="#rejectModal" hx-get="{% url 'user-request-cancel' leave_request.id %}" hx-target="#rejectForm" title="{% trans 'Cancel' %}"
class="oh-btn oh-btn--danger w-100">
<ion-icon class="me-1" name="close-circle-outline"></ion-icon>
</a>
</div>
{% else %}
<div class="oh-sticky-table__td"></div>
{% endif %}
{% endif %}
</div>
{% if leave_request.status == 'requested'%}
<div class="oh-sticky-table__td">
<div class="oh-btn-group">
<div class="oh-sticky-table__td" onclick="event.stopPropagation()">
<div class="oh-btn-group" >
<button class="oh-btn oh-btn--light-bkg w-100" title="{% trans 'Edit' %}" data-toggle="oh-modal-toggle"
data-target="#editModal" hx-get="{% url 'user-request-update' leave_request.id %}"
hx-target="#updateForm"><ion-icon name="create-outline"></ion-icon></button>

View File

@@ -294,7 +294,7 @@ def leave_request_view(request):
Returns:
GET : return leave request view template
"""
queryset = LeaveRequest.objects.all()
queryset = LeaveRequest.objects.all().order_by("-id")
queryset = filtersubordinates(request, queryset, "leave.view_leaverequest")
page_number = request.GET.get("page")
page_obj = paginator_qry(queryset, page_number)
@@ -566,7 +566,7 @@ def user_leave_cancel(request, id):
if form.is_valid():
leave_request = LeaveRequest.objects.get(id=id)
employee_id = leave_request.employee_id
if employee_id.id == request.user.id:
if employee_id.employee_user_id.id == request.user.id:
leave_request.reject_reason = form.cleaned_data["reason"]
leave_request.status = "cancelled"
leave_request.save()
@@ -1763,6 +1763,7 @@ def user_request_view(request):
page_number = request.GET.get("page")
page_obj = paginator_qry(queryset, page_number)
user_request_filter = UserLeaveRequestFilter()
current_date = date.today()
return render(
request,
"leave/user_leave/user_request_view.html",
@@ -1770,6 +1771,7 @@ def user_request_view(request):
"leave_requests": page_obj,
"form": user_request_filter.form,
"pd": previous_data,
"current_date": current_date,
},
)
except Exception as e: