From 836f3e8524bdcb4e2301573b37f43a1943dcbfb6 Mon Sep 17 00:00:00 2001 From: JKuijperM Date: Wed, 16 Sep 2026 08:32:43 +0200 Subject: [PATCH] Aplica el rango de fechas al dashboard Un rango que solo funciona en el listado obliga a cambiar de pantalla para responder "cuanto gaste en ese viaje". El dashboard acepta ahora los mismos date_from y date_to, con la misma precedencia sobre ano y mes. Dos decisiones que no son obvias: La comparativa se desactiva cuando hay rango. Un rango arbitrario no tiene un "periodo anterior" evidente, y elegir uno por el usuario daria un porcentaje que parece significativo sin serlo. Se distingue entre pedirla y poder aplicarla (compare_requested / compare_enabled) para poder avisar de que se ha ignorado en vez de desmarcar la casilla en silencio. El eje del grafico lo decide la longitud del rango, no el mes: por debajo de 62 dias se agrupa por dia y por encima por mes, que es donde un grafico diario deja de leerse. El eje se rellena con ceros en los huecos, igual que ya hacia el resto, para que un periodo sin gastos no colapse la escala. La agrupacion diaria usa el propio campo date y no TruncDate, porque date ya es un DateField y TruncDate le aplicaria una conversion de zona horaria que en SQLite revienta si no esta instalada la base de datos de husos. La tarjeta de proyeccion a fin de mes se oculta con rango activo: proyectar a fin de mes desde un periodo arbitrario no significa nada. Co-Authored-By: Claude Opus 5 --- .../templates/expenses/dashboard.html | 18 +++- expenses_manager/expenses/views.py | 97 +++++++++++++++++-- 2 files changed, 104 insertions(+), 11 deletions(-) diff --git a/expenses_manager/expenses/templates/expenses/dashboard.html b/expenses_manager/expenses/templates/expenses/dashboard.html index 5bfb08e..f1fdb72 100644 --- a/expenses_manager/expenses/templates/expenses/dashboard.html +++ b/expenses_manager/expenses/templates/expenses/dashboard.html @@ -16,7 +16,10 @@

- {% if selected_month %} + {% if range_active %} + Del {{ date_from|date:"d/m/Y"|default:"principio" }} + al {{ date_to|date:"d/m/Y"|default:"hoy" }} + {% elif selected_month %} {{ selected_month }}/{{ selected_year}} {% else %} Año {{ selected_year }} @@ -66,6 +69,8 @@ {% endfor %} + {% include "expenses/_date_range.html" %} + {% if not period %}