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

{{ device.vendor }} {{ device.model }} — {{ device.name }}

{{ device.branch }} · {{ device.connection_mode }} · {{ device.ip_address|default:"No IP" }}:{{ device.port }}
All Devices

Employee Mapping

{% for m in mappings %}{% empty %}{% endfor %}
Machine/User IDEmployeeActive
{{ m.device_user_id }}{{ m.employee }}{{ m.is_active|yesno:"Yes,No" }}
No mappings yet.

Add Mapping

{% csrf_token %}{{ mapping_form.as_p }}

Import Punch CSV

Use this for USB/CSV export or practical test data. Required columns: device_user_id,punch_time,punch_type. Duplicate punches are ignored.

{% csrf_token %}{{ upload_form.as_p }}

Last Sync: {{ device.last_sync_at|date:"Y-m-d H:i"|default:"Never" }}

Status: {{ device.last_sync_status|default:"Not tested" }}

Recent Raw Punches

{% for p in punches %}{% empty %}{% endfor %}
TimeMachine IDMapped EmployeeType
{{ p.punch_time|date:"Y-m-d H:i:s" }}{{ p.device_user_id }}{{ p.employee|default:"Unmapped" }}{{ p.punch_type|default:"—" }}
No punch data imported yet.
{% endblock %}