IT-Stock/app/templates/destinataires.html

81 lines
3.2 KiB
HTML
Raw Permalink Normal View History

{% 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" class="bouton-primaire">Ajouter</button>
</form>
<h2>Résumé périodique du stock</h2>
{#
Les deux formulaires ci-dessous modifient le même réglage
(expression_cron) : l'un via des raccourcis courants, l'autre en saisie
libre. Les regrouper dans une même carte les fait lire comme un seul
réglage à deux modes de saisie plutôt que deux actions indépendantes.
#}
<div class="carte-reglage">
<p class="texte-secondaire">
Un email récapitulatif (stock bas en premier, puis le reste du stock) est
envoyé automatiquement selon l'horaire ci-dessous, aux destinataires listés
plus haut.
{% if prochaine_execution %}
Prochain envoi : {{ prochaine_execution.strftime("%d/%m/%Y à %H:%M") }}.
{% endif %}
</p>
{% if erreur_cron %}
<p class="message-erreur">{{ erreur_cron }}</p>
{% endif %}
{% set exemples_valeurs = exemples_cron | map(attribute=0) | list %}
<form method="post" action="/destinataires/planification" class="formulaire-inline formulaire-planification">
<select name="expression_cron">
{% for expression, description in exemples_cron %}
<option value="{{ expression }}" {{ "selected" if expression == expression_cron else "" }}>
{{ description }} ({{ expression }})
</option>
{% endfor %}
{% if expression_cron not in exemples_valeurs %}
<option value="{{ expression_cron }}" selected>Personnalisé ({{ expression_cron }})</option>
{% endif %}
</select>
<button type="submit">Appliquer</button>
</form>
<form method="post" action="/destinataires/planification" class="formulaire-inline">
<input type="text" name="expression_cron" value="{{ expression_cron }}" class="champ-cron" placeholder="0 9 * * mon">
<button type="submit">Enregistrer une expression personnalisée</button>
</form>
<p class="texte-secondaire">
Format cron : minute (0-59) heure (0-23) jour (1-31) mois (1-12) jour de la
semaine. Utilisez les noms de jours (mon, tue, wed, thu, fri, sat, sun),
pas de chiffres — leur numérotation ne suit pas le cron Unix habituel et
prête à confusion.
</p>
</div>
{% endblock %}