Kundenportal:
- Neue Seite /struktur - OE-Baum (rekursives Jinja-Makro), Anlegen/
Umbenennen/Löschen (Standard-OE 'Neue Geräte' geschützt), Merkmale-
Editor pro OE mit Tristate aktiv/inaktiv/nicht festgelegt.
- geraete_liste.html: neue Spalte 'OE', Aktionen-Dropdown um 'In OE
verschieben' erweitert.
- auftragskatalog.html: zeigt jetzt die Herkunft einer Einstellung an
(OE/Gruppe/manuell), sofern sie nicht vom Workspace-Default kommt.
Admin (/admin/kunden/{id}):
- Neue Sektion 'Gruppen' - Anlegen/Löschen, verlinkt auf neue
Detailseite (admin/gruppe_detail.html) mit Merkmale-Editor (wie OE)
und Geräte-Mitgliedschaft-Checkliste. Bewusst nur intern verwaltbar
in v1 (siehe Konfigurationsgruppen-Diskussion).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
58 lines
2.5 KiB
HTML
58 lines
2.5 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Merkmale {{ oe.name }} — Tuxflotte{% endblock %}
|
|
{% block content %}
|
|
<p><a href="/struktur">← Struktur</a></p>
|
|
<h2>Merkmale: {{ oe.name }}</h2>
|
|
<p>Legt fest, was Geräte in dieser OE (und ihren Unter-OEs, sofern dort nichts Spezifischeres gilt) standardmäßig bekommen. "Nicht festgelegt" überlässt die Entscheidung der nächsten Schicht (Gruppen, dann Workspace-Standard).</p>
|
|
|
|
{% if not kategorien %}
|
|
<p>Keine katalogfähigen Merkmale vorhanden.</p>
|
|
{% else %}
|
|
{% for kategorie_name, eintraege in kategorien.items() %}
|
|
<section>
|
|
<h3>{{ kategorie_name }}</h3>
|
|
<figure>
|
|
<table>
|
|
<tbody>
|
|
{% for eintrag in eintraege %}
|
|
<tr>
|
|
<td>
|
|
<strong>{{ eintrag.name }}</strong>
|
|
{% if eintrag.description %}<br><small>{{ eintrag.description }}</small>{% endif %}
|
|
</td>
|
|
<td>
|
|
{% if eintrag.aktiv is none %}
|
|
<span class="state-absent">nicht festgelegt</span>
|
|
{% elif eintrag.aktiv %}
|
|
<span class="state-present">aktiv</span>
|
|
{% else %}
|
|
<span class="state-absent">inaktiv</span>
|
|
{% endif %}
|
|
</td>
|
|
<td>
|
|
{% if eintrag.aktiv != true %}
|
|
<form method="post" action="/struktur/{{ oe.id }}/merkmale/{{ eintrag.merkmal }}/select">
|
|
<button type="submit">Aktiv setzen</button>
|
|
</form>
|
|
{% endif %}
|
|
{% if eintrag.aktiv != false %}
|
|
<form method="post" action="/struktur/{{ oe.id }}/merkmale/{{ eintrag.merkmal }}/deselect">
|
|
<button type="submit" class="secondary">Inaktiv setzen</button>
|
|
</form>
|
|
{% endif %}
|
|
{% if eintrag.aktiv is not none %}
|
|
<form method="post" action="/struktur/{{ oe.id }}/merkmale/{{ eintrag.merkmal }}/unset">
|
|
<button type="submit" class="outline">Zurücksetzen</button>
|
|
</form>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</figure>
|
|
</section>
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endblock %}
|