{% extends 'base.html' %} {% block content %}

HR Leave Approvals

Approve or reject requests forwarded by managers
{% with messages = get_flashed_messages(with_categories=true) %} {% if messages %} {% for category, message in messages %} {% endfor %} {% endif %} {% endwith %}
🔎 Filters Reset
🔸 Pending HR Approvals {% if pending_requests %}
{% endif %}
{% if pending_requests %}
{% for r in pending_requests %} {% endfor %}
# Employee Dates Days Leave Reason Action
{{ loop.index }}
{{ r.employee.full_name }}
{{ r.employee.code }}
{{ r.start_date.strftime('%d-%b-%Y') }} {% if r.end_date != r.start_date %} {{ r.end_date.strftime('%d-%b-%Y') }} {% endif %} {{ r.total_days if r.total_days else (0.5 if r.half_day else 1) }} {{ r.leave_type.name }} {{ r.reason }}
{% else %}
No pending requests.
{% endif %}
✅ Processed by HR
{% if processed_requests %} {% for r in processed_requests %} {% endfor %}
# Employee Dates Days Leave Status HR Remark
{{ loop.index }}
{{ r.employee.full_name }}
{{ r.employee.code }}
{{ r.start_date.strftime('%d-%b-%Y') }} {% if r.end_date != r.start_date %} {{ r.end_date.strftime('%d-%b-%Y') }} {% endif %} {{ r.total_days if r.total_days else (0.5 if r.half_day else 1) }} {{ r.leave_type.name }} {% set s = r.status %} {% if s == 'final_approved' %} HR Approved {% elif s == 'rejected' %} Rejected {% elif s == 'manager_approved' %} Manager Approved {% else %} {{ s|replace('_',' ')|capitalize }} {% endif %} {% set hr_logs = r.approval_logs | selectattr('approver_role','equalto','hr') | list %} {% if hr_logs %} {% set last = hr_logs[-1] %}
{{ last.status|capitalize }} {{ last.remark or '—' }}
{% else %} {% endif %}
{% else %}
No processed requests.
{% endif %}
{% endblock %}