diff --git a/app/templates/reports.html b/app/templates/reports.html
index 18525f7..13e4e2b 100644
--- a/app/templates/reports.html
+++ b/app/templates/reports.html
@@ -78,4 +78,72 @@
{% endif %}
+
+
+
+
{{ m.month_name }}
+
{{ m.entry_count }} j
+
+
+ {% if m.entry_count == 0 %}
+
Aucune entrée
+ {% else %}
+ {# --- Barre transport --- #}
+ {% if m.km_total > 0 %}
+
+ {{ m.km_total }}km
+
+
+ {% for vehicle_id, km in m.km_by_vehicle.items() %}
+ {% set v_info = vehicles.get(vehicle_id, {}) %}
+ {% if v_info.get('type') == 'velo' %}
+ {% set color = '#4ade80' %}
+ {% elif v_info.get('fuel') == 'electric' %}
+ {% set color = '#818cf8' %}
+ {% else %}
+ {% set color = '#d4a574' %}
+ {% endif %}
+ {% set pct = (km / m.km_total * 100) | round(1) %}
+
+ {% endfor %}
+
+
+ {% for vehicle_id, km in m.km_by_vehicle.items() %}
+ {% set v_info = vehicles.get(vehicle_id, {}) %}
+ {% if v_info.get('type') == 'velo' %}
+ {% set color = '#4ade80' %}
+ {% elif v_info.get('fuel') == 'electric' %}
+ {% set color = '#818cf8' %}
+ {% else %}
+ {% set color = '#d4a574' %}
+ {% endif %}
+
+
+ {{ vehicles.get(vehicle_id, {}).get('name', vehicle_id) }} ({{ km }} km)
+
+ {% endfor %}
+
+ {% else %}
+
Aucun déplacement
+ {% endif %}
+
+ {# --- Stats temporelles --- #}
+
+
+
Médiane / jour
+
{{ m.median_daily_str }}
+
+
+
Médiane / semaine
+
{{ m.median_weekly_str }}
+
+
+ {% endif %}
+
+{% endfor %}
+
{% endblock %}
diff --git a/tests/test_routes.py b/tests/test_routes.py
index 543246d..4560d7f 100644
--- a/tests/test_routes.py
+++ b/tests/test_routes.py
@@ -91,3 +91,11 @@ def test_create_entry_velo_no_motor_vehicle(client, app):
)
assert entry is not None
assert entry.motor_vehicle_id is None
+
+
+def test_reports_monthly_section(client):
+ response = client.get("/reports/")
+ assert response.status_code == 200
+ assert "Détail mensuel" in response.text
+ assert "Janvier" in response.text
+ assert "Décembre" in response.text