145 lines
7.7 KiB
HTML
Executable File
145 lines
7.7 KiB
HTML
Executable File
{% load basefilters %}
|
|
{% load attendancefilters %}
|
|
{% load static %}
|
|
{% load i18n %}
|
|
{% include 'filter_tags.html' %}
|
|
<div class="oh-sticky-table">
|
|
<div class="oh-sticky-table__table oh-table--sortable">
|
|
<div class="oh-sticky-table__thead">
|
|
<div class="oh-sticky-table__tr">
|
|
<div class="oh-sticky-table__th" >
|
|
<div class="d-flex">
|
|
<div class="">
|
|
<input
|
|
type="checkbox"
|
|
class="oh-input oh-input__checkbox mt-1 mr-2 all-shift-requests"
|
|
/>
|
|
</div>
|
|
<div hx-target="#view-container" hx-get="{% url 'shift-request-search' %}?{{pd}}&orderby=employee_id__employee_first_name" hx-target="#view-container">
|
|
{% trans "Employee" %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="oh-sticky-table__th">{% trans "Requested Shift" %}</div>
|
|
<div class="oh-sticky-table__th">{% trans "Previous/Current Shift" %}</div>
|
|
<div class="oh-sticky-table__th" hx-get="{% url 'shift-request-search' %}?{{pd}}&orderby=requested_date" hx-target="#view-container">{% trans "Requested Date" %}</div>
|
|
<div class="oh-sticky-table__th" hx-get="{% url 'shift-request-search' %}?{{pd}}&orderby=requested_till" hx-target="#view-container">{% trans "Requested Till" %}</div>
|
|
<div class="oh-sticky-table__th">{% trans "Description" %}</div>
|
|
<div class="oh-sticky-table__th"></div>
|
|
<div class="oh-sticky-table__th"></div>
|
|
<div class="oh-sticky-table__th"></div>
|
|
</div>
|
|
</div>
|
|
{% for shift_request in data %}
|
|
<div class="oh-sticky-table__tbody">
|
|
<div class="oh-sticky-table__tr" draggable="true">
|
|
<div class="oh-sticky-table__sd">
|
|
<div class="d-flex">
|
|
<div class="">
|
|
<input
|
|
type="checkbox"
|
|
id="{{shift_request.id}}"
|
|
class="oh-input employee-checkbox oh-input__checkbox mt-2 mr-2 all-shift-requests-row"
|
|
/>
|
|
</div>
|
|
<div class="oh-profile oh-profile--md">
|
|
<div class="oh-profile__avatar mr-1">
|
|
<img src="https://ui-avatars.com/api/?name={{shift_request.employee_id}}&background=random" class="oh-profile__image" alt="Username">
|
|
</div>
|
|
<span class="oh-profile__name oh-text--dark">{{shift_request.employee_id}}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="oh-sticky-table__td">{{shift_request.shift_id}}</div>
|
|
<div class="oh-sticky-table__td">{{shift_request.previous_shift_id}}</div>
|
|
<div class="oh-sticky-table__td">{{shift_request.requested_date}}</div>
|
|
<div class="oh-sticky-table__td">{{shift_request.requested_till}}</div>
|
|
<div class="oh-sticky-table__td">{{shift_request.description}}</div>
|
|
<div class="oh-sticky-table__td">
|
|
<div class="oh-btn-group">
|
|
|
|
{% if shift_request.approved == False and not shift_request.canceled %}
|
|
<a hx-get="{% url 'shift-request-update' shift_request.id %}" hx-target='#shiftRequestModalUpdateBody' data-toggle="oh-modal-toggle" data-target='#shiftRequestModalUpdate' class="oh-btn oh-btn--light-bkg w-50" title="{% trans 'Edit' %}"><ion-icon name="create-outline"></ion-icon></a>
|
|
{% endif %}
|
|
{% if perms.base.delete_shiftrequest %}
|
|
<form action="{% url 'shift-request-delete' shift_request.id %}" onsubmit="return confirm('{% trans "Are you sure you want to delete this shift request?" %}');" method='post'>
|
|
{% csrf_token %}
|
|
<button type='submit' class="oh-btn oh-btn--danger-outline oh-btn--light-bkg w-100" title="{% trans 'Remove' %}"><ion-icon name="trash-outline"></ion-icon></button>
|
|
</form>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
<div class="oh-sticky-table__td">
|
|
{% if shift_request.approved == False %}
|
|
{% if perms.base.change_shiftrequest and shift_request.approved == False or request.user|is_reportingmanager %}
|
|
{% if shift_request.canceled %}
|
|
<button disabled class='oh-btn oh-btn--primary w-100'>{% trans "Canceled" %}</button></td>
|
|
{% elif request.user.employee_get == shift_request.employee_id and not perms.base.change_shiftrequest %}
|
|
<button class='oh-btn oh-btn--info w-100' disabled>{% trans "Approve" %}</button></td>
|
|
{% else %}
|
|
<a href="/shift-request-approve/{{shift_request.id}}/" onclick="return confirm('{% trans "Do you want to approve this request?" %}')" class='oh-btn oh-btn--info'>{% trans "Approve" %}</a></td>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% elif shift_request.approved == True %}
|
|
<button type = 'button' class='oh-btn oh-btn--info w-100' disabled>{% trans "Approved" %}</button>
|
|
{% endif %}
|
|
|
|
{% if not perms.base.change_shiftrequest and not request.user|is_reportingmanager and request.user == shift_request.employee_id.employee_user_id %}
|
|
{% if shift_request.canceled %}
|
|
<button disabled class='oh-btn oh-btn--primary w-100'>{% trans "Canceled" %}</button></td>
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
<div class="oh-sticky-table__td">
|
|
{% if shift_request.approved == False and shift_request.canceled == False %}
|
|
<a href="/shift-request-cancel/{{shift_request.id}}/" onclick="return confirm('{% trans "Do you want to cancel this request?" %}')" class='oh-btn oh-btn--primary'>{% trans "Cancel" %}</a></td>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="oh-pagination">
|
|
<span class="oh-pagination__page">
|
|
{% trans "Page" %} {{ data.number }} {% trans "of" %} {{ data.paginator.num_pages }}.
|
|
</span>
|
|
<nav class="oh-pagination__nav">
|
|
<div class="oh-pagination__input-container me-3">
|
|
<span class="oh-pagination__label me-1">{% trans "Page" %}</span>
|
|
<input type="number" name="page" class="oh-pagination__input" value="{{data.number}}"
|
|
hx-get="{% url 'shift-request-search' %}?{{pd}}" hx-target="#view-container" min="1" />
|
|
<span class="oh-pagination__label">{% trans "of" %} {{data.paginator.num_pages}}</span>
|
|
</div>
|
|
<ul class="oh-pagination__items">
|
|
{% if data.has_previous %}
|
|
<li class="oh-pagination__item oh-pagination__item--wide">
|
|
<a hx-target='#view-container' hx-get="{% url 'shift-request-search' %}?{{pd}}&page=1"
|
|
class="oh-pagination__link">{% trans "First" %}</a>
|
|
</li>
|
|
<li class="oh-pagination__item oh-pagination__item--wide">
|
|
<a hx-target='#view-container'
|
|
hx-get="{% url 'shift-request-search' %}?{{pd}}&page={{ data.previous_page_number }}"
|
|
class="oh-pagination__link">{% trans "Previous" %}</a>
|
|
</li>
|
|
{% endif %}
|
|
{% if data.has_next %}
|
|
<li class="oh-pagination__item oh-pagination__item--wide">
|
|
<a hx-target='#view-container'
|
|
hx-get="{% url 'shift-request-search' %}?{{pd}}&page={{ data.next_page_number }}"
|
|
class="oh-pagination__link">{% trans "Next" %}</a>
|
|
</li>
|
|
<li class="oh-pagination__item oh-pagination__item--wide">
|
|
<a hx-target='#view-container'
|
|
hx-get="{% url 'shift-request-search' %}?{{pd}}&page={{ data.paginator.num_pages }}"
|
|
class="oh-pagination__link">{% trans "Last" %}</a>
|
|
</li>
|
|
{% endif %}
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
|
|
<script src="{% static '/base/actions.js' %}"></script>
|