Catégorie/SousCategorie fusionnées en un seul modèle auto-référencé (parent_id), pour permettre une imbrication sans limite de niveaux. Les listings matériels/catégories/destinataires passent en lignes repliées (<details>) avec recherche côté serveur, ce qui corrige le débordement horizontal du tableau tout-en-input et reste utilisable sur de longues listes. Style de l'écran de scan également retravaillé (frontend-design).
31 lines
1.1 KiB
HTML
31 lines
1.1 KiB
HTML
{% extends "base.html" %}
|
|
{% block titre %}Alertes - Gestion de stock IT{% endblock %}
|
|
{% block contenu %}
|
|
<h1>Destinataires des alertes de stock bas</h1>
|
|
|
|
<form method="get" action="/destinataires" class="barre-recherche">
|
|
<input type="search" name="q" value="{{ q }}" placeholder="Rechercher un email…">
|
|
{% if q %}<a href="/destinataires" class="lien-effacer">Effacer</a>{% endif %}
|
|
</form>
|
|
|
|
<ul class="liste-resultats">
|
|
{% for destinataire in destinataires %}
|
|
<li>
|
|
<span>{{ destinataire.email }}</span>
|
|
<form method="post" action="/destinataires/{{ destinataire.id }}/supprimer" class="formulaire-inline">
|
|
<button type="submit" class="bouton-danger">Supprimer</button>
|
|
</form>
|
|
</li>
|
|
{% else %}
|
|
<li class="liste-vide">
|
|
{% if q %}Aucun destinataire ne correspond à « {{ q }} ».{% else %}Aucun destinataire configuré : aucune alerte ne sera envoyée.{% endif %}
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
|
|
<form method="post" action="/destinataires" class="formulaire-inline">
|
|
<input type="email" name="email" placeholder="email@clinique.local" required>
|
|
<button type="submit">Ajouter</button>
|
|
</form>
|
|
{% endblock %}
|