⚙️ {{ machine.name }}
{{ machine.controller_type or '—' }}{% if machine.controller_model %} · {{ machine.controller_model }}{% endif %}
{# v1.16.3: Notification-Bell — 24h-History + Mark-All-Seen #}
Benachrichtigungen
{% if mde_latest and mde_latest.status %} {% set st = mde_latest.status %} {% if st=='run' %}🟢 läuft{% elif st=='alarm' %}🔴 Alarm {% elif st=='idle' %}⚪ Stillstand{% else %}❓ unbekannt{% endif %} {% endif %}
↻ {{ t('sf_change_machine') if t else 'Maschine' }} {# Office-Back-Button: nur sichtbar wenn der Browser eine Office-Session hat (Werkstattleiter/Admin am Tablet — Maschinenbediener haben keine Session und sehen den Button gar nicht erst). #}
{% if mde_latest %}
Stückzähler{{ mde_latest.part_count if mde_latest.part_count is not none else '—' }}
Spindel{{ (mde_latest.spindle_rpm|string + ' U/min') if mde_latest.spindle_rpm else '—' }}
NC-Programm{{ mde_latest.current_nc or '—' }}
letzte Aktualisierung: {{ mde_latest.ts or '—' }}
{% endif %} {% if related_jobs %}
Parent-Aufträge dieser Sub-Jobs: {% for r in related_jobs %} #{{ r.id }} · {{ r.item_ident }} · {{ r.qty_done or 0 }}/{{ r.qty_target }} {% if r.machine_name %}auf {{ r.machine_name }}{% endif %} {% endfor %}
{% endif %}
{% if must_login %}
🔐

Bitte einloggen

Bevor du an dieser Maschine arbeitest, melde dich mit deiner PIN an.
Solange nicht eingeloggt: keine Job-Anzeige, keine Stundenerfassung.

{% endif %} {% for j in jobs %}
Auftrag #{{ j.id }}{% if j.ident %} · {{ j.ident }}{% endif %}
{{ j.item_ident or '—' }}
{% if j.parent_ident %}
↳ Sub-Baugruppe von {{ j.parent_ident }} (Parent-Auftrag #{{ j.parent_job_id }})
{% endif %} {% if j.item_description %}
{{ j.item_description[:80] }}
{% endif %} {% if j.status=='running' %}🟢 läuft {% elif j.status=='paused' %}⏸ pausiert {% elif j.status=='queued' %}🕒 wartet{% endif %} {% if j.status=='paused' and j.pause_reason %}
⏸ {{ j.pause_reason }}
{% endif %}
Gut-Stück
{{ j.qty_done or 0 }}
von {{ j.qty_target or 0 }}
Ausschuss
{{ j.qty_scrap or 0 }}
Schlechtteile
{# Tier-A.1: Rüst-Modus separat — eigener Button, oranger Hintergrund #} {% set in_setup = j.setup_started_at and not j.setup_ended_at %} {% if in_setup %} {% else %} {% endif %} {# Tier-A.2: Echte Störungsmeldung statt nur Pause-Reason #} {% if j.item_id %}{% endif %} {% if j.item_id %}{% endif %}
{% else %}
🎉 Keine offenen Aufträge für diese Maschine.
Aufträge werden im Office-Modus angelegt.
{% endfor %}