Attendance and leave

Times are recorded in East Africa Time (UTC+3). This is a shared tracking log, not a payroll or overtime calculation.

{% if role == 'nanny' %} {% if open_shift %}

Shift clock

Clocked in for {{ open_shift.shift_date }} at {{ open_shift.clocked_in_at }} with {{ open_shift.parent_name }}.

{% if open_shift.placement_status != 'active' %}

This placement has ended; clock out to close your recorded shift.

{% endif %}
{% elif active_placement %}

Shift clock

Start your shift for {{ active_placement.parent_name }}.

Request sick leave or a day off
{% else %}

Clock-in and leave tracking become available when you have an active placement.

{% endif %} {% endif %}

Shift history

{% if attendance_entries %}
{% for entry in attendance_entries %}
{{ entry.shift_date }} {% if role == 'parent' %} · {{ entry.nanny_name }}{% else %} · {{ entry.parent_name }}{% endif %}

In: {{ entry.clocked_in_at }} {% if entry.clocked_out_at %} · Out: {{ entry.clocked_out_at }} · Recorded time: {{ entry.worked_minutes // 60 }}h {{ entry.worked_minutes % 60 }}m {% else %} · Shift is still open {% endif %}

{% endfor %}
{% else %}

No shifts have been recorded yet.

{% endif %}

Leave log

{% if leave_requests %}
{% for leave in leave_requests %}
{% if leave.leave_type == 'sick' %}Sick leave {% elif leave.leave_type == 'day_off' %}Day off {% else %}Other leave{% endif %} {% if role == 'parent' %} · {{ leave.nanny_name }}{% endif %}

{{ leave.start_date }}{% if leave.end_date != leave.start_date %} to {{ leave.end_date }}{% endif %}

{% if leave.note %}

{{ leave.note }}

{% endif %}
{{ leave.status|title }}
{% if role == 'parent' and leave.status == 'pending' %}
{% endif %}
{% endfor %}
{% else %}

No leave days have been recorded.

{% endif %}