{% extends "base.html" %} {% from "_macros.html" import avatar %} {% block title %}Team & Maschinen{% endblock %} {% block heading %}Team & Maschinen{% endblock %} {% block topbar_actions %} + Maschine + Mitarbeiter {% endblock %} {% block content %}

Team

{{ users|length }} Mitarbeiter

{% set bal_by_id = {} %} {% for b in balances %}{% set _ = bal_by_id.update({b.id: b}) %}{% endfor %} {% for u in users %} {% set b = bal_by_id.get(u.id) %} {% endfor %}
Name Position Verleihe Urlaub Urlaubs-Stand
{{ avatar(u.first_name, u.last_name) }}
{{ u.first_name }} {{ u.last_name }}
{{ u.username }}{% if u.role_name %} · {{ u.role_name }}{% endif %}
{{ (b.position if b else None) or '—' }} {% if u.open_rentals %}{{ u.open_rentals }}{% else %}—{% endif %} {% if b %} {% set avail = b.entitled - b.used - b.requested %} {{ avail }} / {{ b.entitled }} T {% else %}—{% endif %} {% if b %} {% set pct = (b.used * 100 / b.entitled) if b.entitled else 0 %}

{{ b.used }} gen. · {{ b.requested }} beantr.

{% endif %}
Akte Login

Maschinen

{{ machines|length }} Maschinen / Arbeitsplätze

Stundensätze nach Stückzahl-Staffel: kleine Mengen (Stufe 1) · mittlere ab Schwelle S₂ · große ab S₃. Leer lassen = nächst-niedrigerer Tier oder Step-Satz greift.
{% for m in machines %} {% endfor %}
Maschine Steuerung Anbindung €/h klein
Stufe 1
€/h mittel
ab S₂ Stk
€/h groß
ab S₃ Stk
Schwellen
S₂ / S₃
Belegung
{{ m.name }}
{% if m.controller_model %}
{{ m.controller_model }}
{% endif %}
{% if m.controller_type and m.controller_type != 'none' %} {{ controllers.get(m.controller_type, m.controller_type) }} {% else %} {% endif %} {% if m.ip_address %}
{{ m.ip_address }}{% if m.port %}:{{ m.port }}{% endif %}
{% if m.conn_status == 'online' %} ● online {% elif m.conn_status == 'offline' %} ● offline {% else %} ● unbekannt {% endif %} {% else %} nicht angebunden {% endif %}
/
{% if m.active_uses %} {{ m.active_uses }} aktiv {% else %} {% endif %} Bearbeiten
{% endblock %}