{% extends "tesm_core/base.html" %} {% from "tesm_core/macros.html" import empty_state, pill, alert %} {% block page_title %}{{ license.customer_name }}{% endblock %} {% block page_sub %}Gemeldeter Bestand · Lizenz {{ license.license_id[:12] }}…{% endblock %} {% block breadcrumb %} {% endblock %} {% block content %} {{ alert('Diese Daten verwaltet der Sub-Lizenzserver selbst. Sie sind hier rein informativ und werden bei jedem Bericht vollständig ersetzt.', 'info') }} {% if reported.customers %}
{% for entry in reported.customers %}
{{ entry.name }}
{{ entry.contact_email or 'ohne E-Mail' }} {% if entry.city %}· {{ entry.city }}{% endif %} · {{ entry.tickets | length }} Ticket(s)
{{ icon('chevron-down', size=16) }}
{% for ticket in entry.tickets %} {% endfor %}
TicketTypZustandLizenzen
{{ ticket.remote_ref[:12] }}… {{ ticket.type }} {% if ticket.status == 'blocked' %}{{ pill('gesperrt', 'danger') }} {% else %}{{ pill('offen', 'online') }}{% endif %} {% for entry_license in ticket.licenses %}
{{ entry_license.remote_ref[:10] }}… {{ entry_license.status }} {% if entry_license.lifetime %}{{ pill('unbefristet', 'online') }} {% elif entry_license.days_left is not none %} {{ pill(entry_license.days_left ~ ' Tage', 'danger' if entry_license.color == 'red' else ('warning' if entry_license.color == 'orange' else 'online')) }} {% endif %} {% if entry_license.hostname %} {{ entry_license.hostname }} {% endif %}
{% else %} keine {% endfor %}
{% endfor %}
{% else %} {{ empty_state('Noch kein Bericht', 'Dieser Lizenzserver hat noch nichts gemeldet. Der erste Bericht kommt mit dem nächsten Heartbeat.', 'share') }} {% endif %} {% endblock %}