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 %} + +

Détail mensuel

+ +{% for month_num in range(1, 13) %} +{% set m = monthly_data[month_num] %} +
+
+

{{ 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