{% extends 'layout.html' %} {% block title %}Tableau de bord{% endblock %} {% block page_title %}Tableau de bord{% endblock %} {% block styles %} {% endblock %} {% block content %} {# ── Calculs taux (safe divisions) ── #} {% set taux_resolution = ((interventions_terminees / total_interventions * 100)|round(1)) if total_interventions > 0 else 0 %} {% set taux_preventif = ((preventifs_termines / (preventifs_termines + preventifs_en_attente) * 100)|round(1)) if (preventifs_termines + preventifs_en_attente) > 0 else 0 %} {% set taux_stock_ok = (((total_pieces - pieces_alerte) / total_pieces * 100)|round(1)) if total_pieces > 0 else 100 %} {% set has_any_kpi = permissions.interventions or permissions.equipements or permissions.pieces or permissions.preventifs or permissions.ordres %}

Bienvenue, {{ session.username }} 👋

Rôle : {{ user_role }} — {% if has_any_kpi %}Voici un aperçu de vos indicateurs clés.{% else %}Contactez votre administrateur pour accéder aux modules.{% endif %}

{{ now.strftime('%A %d %B %Y') }} {% if interventions_en_cours > 0 %} {{ interventions_en_cours }} en cours {% endif %} {% if interventions_urgentes > 0 %} {{ interventions_urgentes }} urgente(s) {% endif %}
{% if permissions.interventions %}
Total
{{ total_interventions }}
Interventions
En cours
{{ interventions_en_cours }}
Non traitées
Très urgentes
{{ interventions_urgentes }}
Priorité haute
Terminées
{{ interventions_terminees }}
Taux {{ taux_resolution }}%
Annulées
{{ interventions_annulees }}
Archivées
{% endif %} {% if permissions.equipements or permissions.pieces or permissions.preventifs or permissions.ordres %}
{% if permissions.equipements %}
{{ total_equipements }}
Équipements
{% endif %} {% if permissions.pieces %}
{{ pieces_alerte }}
Pièces en alerte
{% endif %} {% if permissions.preventifs %}
{{ preventifs_en_attente }}
Préventifs en attente
{% endif %} {% if permissions.ordres %}
{{ total_ordres }}
Ordres de travail
{% endif %}
{% endif %} {% if permissions.interventions %}
Évolution des interventions
Répartition par urgence
{% endif %}
{% if permissions.interventions or permissions.preventifs or permissions.pieces or permissions.ordres %}
Indicateurs de performance
{% if permissions.interventions %}
{{ taux_resolution }}%
Taux résolution
{% endif %} {% if permissions.preventifs %}
{{ taux_preventif }}%
Préventif réalisé
{% endif %} {% if permissions.pieces %}
{{ taux_stock_ok }}%
Stock OK
{% endif %} {% if permissions.ordres %}
{{ ordres_signes }}/{{ total_ordres }}
OT signés
{% endif %}
{% if permissions.interventions %}
Taux de résolution {{ taux_resolution }}%
{% endif %} {% if permissions.preventifs %}
Maintenance préventive {{ taux_preventif }}%
{% endif %}
{% endif %} {% if permissions.equipements %}
Top équipements en panne
{% if top_equipements %} {% set max_n = top_equipements[0].n %} {% for eq in top_equipements %}
{{ eq.designation }} {{ eq.n }} pannes
{% endfor %} {% else %}
Aucune panne enregistrée
{% endif %}
{% endif %} {% if permissions.pieces %}
Stock en alerte
{% if pieces_alerte_liste %} {% for p in pieces_alerte_liste %}
{{ p.designation }}
Réf: {{ p.ref or '—' }}
{{ p.stock }} / {{ p.stock_alerte }}
{% endfor %} Voir tout le stock {% else %}
Stock suffisant
{% endif %}
{% endif %}
{% if permissions.interventions %}
{% if urgentes_liste %} {% endif %}
Dernières interventions
Voir tout
{% for i in dernieres_interventions %} {% else %} {% endfor %}
N° Date Équipement Description Urgence État
{{ i.numero }} {{ i.date }} {{ i.designation }} {{ i.description[:40] }}{% if i.description|length > 40 %}…{% endif %} {% if i.degre == 'Trés urgent' %} 🔴 Très urgent {% elif i.degre == 'Urgent' %} 🟡 Urgent {% else %} 🔵 Normal {% endif %} {% if i.est_traiter == 'oui' %} ✓ Traitée {% elif i.annuler == 'oui' %} ✕ Annulée {% else %} ⏳ En cours {% endif %}
Aucune intervention récente
{% endif %} {% if not has_any_kpi %}
Aucun module de suivi disponible

Votre rôle actuel ({{ user_role }}) ne dispose pas d'accès aux modules de suivi.
Utilisez le menu latéral ou contactez un administrateur.

{% endif %}
{# Données pour Chart.js #} {% if permissions.interventions %} {% endif %} {% endblock %} {% block scripts %} {% if permissions.interventions %} {% endif %} {% endblock %}