{% with messages = get_flashed_messages() %}{% if messages %}
{% for m in messages %}
{{ locker.name | upper }}
{{ locker.location }}
{% if state.status == 'locked' %}CASIER LIBRE
{% elif state.status == 'reserved' %}RÉSERVATION EN ATTENTE
{% else %}CASIER EN COURS D'UTILISATION{% endif %}
{% if not state.online %}
CASIER HORS-LIGNE
Le casier n'est pas allumé ou la connexion est perdue. Aucune réservation n'est possible tant qu'il n'est pas remis en marche.
{% endif %}
{% if state.status == 'reserved' and state.session and is_my_session %}
RÉSERVATION CONFIRMÉE
Votre casier s'ouvrira automatiquement à l'heure prévue.
Pas besoin de revenir sur l'app.
--:--:--
Avant ouverture
Créneau
{{ state.session.start_str }} — +{{ state.session.hours }}h
Montant
{{ "%.2f"|format(state.session.amount_eur) }} €
{# Bouton Annulation — visible uniquement si l'ouverture est dans + d'1h #}
{% set seconds_before = state.session.started_at - now_ts %}
{% if seconds_before > 3600 %}
L'annulation n'est possible que jusqu'à 1h avant l'ouverture.
{% else %}
Annulation indisponible : il reste moins d'1h avant l'ouverture.
{% endif %}
{% endif %}
Identifiant
{{ locker.id }}
{% if state.status == 'unlocked' and state.session %}
Temps restant
--:--:--
Session en cours — {{ state.session.hours }}h payées
Montant payé
{{ "%.2f"|format(state.session.amount_eur) }} €
Moins de 30 minutes restantes — vous pouvez prolonger d'1h pour 5,00 €.
{% elif state.status == 'locked' %}
{% if not state.online %}
Réservation indisponible
Le casier doit être allumé et connecté pour pouvoir être réservé.
{% else %}
Choisir un créneau
{% with messages = get_flashed_messages() %}{% if messages %}
ERREUR DE RÉSERVATION
{% for m in messages %}- {{ m }}
{% endfor %}
{% endif %}{% endwith %}
{% endif %}
{% endif %}