[FIX] LEAVE: Rejection and cancel reason in leave request view
This commit is contained in:
@@ -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>
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user