{% extends "tesm_core/base.html" %} {% from "tesm_core/macros.html" import field, checkbox, pill, alert, empty_state, modal %} {% block page_title %}Lizenz {{ license.license_id[:12] }}…{% endblock %} {% block page_sub %} {{ license.customer_name }} · {{ type_labels.get(license.type, license.type) }} {% if license.role != 'customer' %}· {{ role_labels.get(license.role, license.role) }}{% endif %} {% endblock %} {% block breadcrumb %} {% endblock %} {% block topbar_extra %} {% if current_user.has('licenses.export') %} {{ icon('download', size=15) }} Datei {% endif %} {% endblock %} {% block content %} {% if state.revision_pending %} {{ alert('Es wurde eine neue Revision signiert, die der Kunde noch nicht abgeholt hat. Eine erreichbare Installation holt sie beim nächsten Heartbeat; eine Installation ohne Verbindung braucht dafür den Offline-Weg -- der Kunde findet ihn in seinem Portal.', 'warning', 'Revision ausstehend') }} {% endif %} {% if license.status == 'revoked' %} {{ alert('Diese Lizenz ist widerrufen. Der Client erfährt das beim nächsten Heartbeat und schaltet seine lizenzpflichtigen Funktionen ab.' ~ ((' Grund: ' ~ license.revoke_reason) if license.revoke_reason else ''), 'danger', 'Widerrufen') }} {% endif %}
| Zeit | Weg | Empfänger | Durch | Detail |
|---|---|---|---|---|
| {{ entry.delivered_at | dt }} | {{ entry.channel }} | {{ entry.recipient or '–' | safe }} | {{ entry.delivered_by }} | {{ entry.detail }} |
{{ document_json }}
Das Ticket bleibt offen -- eine neue Lizenz kann sofort ausgestellt werden. Genau so läuft ein Systemwechsel.
{% endif %} {% if current_user.has('licenses.delete') %} {% endif %}