Some improvements to the visual part of the dashboard
This commit is contained in:
parent
2a692534d0
commit
ff87956fd5
@ -15,6 +15,12 @@
|
|||||||
<!-- Filters -->
|
<!-- Filters -->
|
||||||
<!-- ========================= -->
|
<!-- ========================= -->
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a href="{% url 'dashboard' %}?period=this_month">Este mes</a> |
|
||||||
|
<a href="{% url 'dashboard' %}?period=last_month">Mes anterior</a> |
|
||||||
|
<a href="{% url 'dashboard' %}?period=this_year">Este año</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
<form method="get" class="filters">
|
<form method="get" class="filters">
|
||||||
<label>
|
<label>
|
||||||
Año:
|
Año:
|
||||||
@ -70,7 +76,7 @@
|
|||||||
|
|
||||||
<div class="kpi">
|
<div class="kpi">
|
||||||
<h3>Total</h3>
|
<h3>Total</h3>
|
||||||
<p>{{ kpi_total }}</p>
|
<p>{{ kpi_total }}€</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="kpi">
|
<div class="kpi">
|
||||||
@ -96,17 +102,16 @@
|
|||||||
</p>
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<p>
|
<div>
|
||||||
Diferencia:
|
Diferencia:
|
||||||
{% if kpi_difference > 0 %}
|
{% if kpi_trend == "up" %}
|
||||||
<span>▲</span>
|
<span style="color:red;">▲ {{ kpi_difference|floatformat:2 }}€</span>
|
||||||
{% elif kpi_difference < 0 %}
|
{% elif kpi_trend == "down" %}
|
||||||
<span>▼</span>
|
<span style="color:green;">▼ {{ kpi_difference|floatformat:2 }}€</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span>=</span>
|
<span>0€</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<strong>{{ kpi_difference|floatformat:2 }}</strong>
|
</div>
|
||||||
</p>
|
|
||||||
<p>
|
<p>
|
||||||
Variación:
|
Variación:
|
||||||
{% if kpi_percentage is not None %}
|
{% if kpi_percentage is not None %}
|
||||||
@ -123,26 +128,30 @@
|
|||||||
<!-- ========================= -->
|
<!-- ========================= -->
|
||||||
<h2>Gastos por categoría</h2>
|
<h2>Gastos por categoría</h2>
|
||||||
|
|
||||||
<table>
|
{% if not by_category %}
|
||||||
<thead>
|
<p>No hay gastos para este periodo.</p>
|
||||||
<tr>
|
{% else %}
|
||||||
<th>Categoría</th>
|
<table>
|
||||||
<th>Total</th>
|
<thead>
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for row in by_category %}
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ row.category__name }}</td>
|
<th>Categoría</th>
|
||||||
<td>{{ row.total }}</td>
|
<th>Total</th>
|
||||||
</tr>
|
</tr>
|
||||||
{% empty %}
|
</thead>
|
||||||
<tr>
|
<tbody>
|
||||||
<td colspan="2">Sin datos</td>
|
{% for row in by_category %}
|
||||||
</tr>
|
<tr>
|
||||||
{% endfor %}
|
<td>{{ row.category__name }}</td>
|
||||||
</tbody>
|
<td>{{ row.total }}</td>
|
||||||
</table>
|
</tr>
|
||||||
|
{% empty %}
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">Sin datos</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if compare_enabled %}
|
{% if compare_enabled %}
|
||||||
<h3>Comparativa por categoría</h3>
|
<h3>Comparativa por categoría</h3>
|
||||||
@ -164,9 +173,9 @@
|
|||||||
<td>{{ row.previous }}</td>
|
<td>{{ row.previous }}</td>
|
||||||
<td>
|
<td>
|
||||||
{% if row.difference > 0 %}
|
{% if row.difference > 0 %}
|
||||||
▲ {{ row.difference }}
|
<span style="color:red;">▲ {{ row.difference }}</span>
|
||||||
{% elif row.difference < 0 %}
|
{% elif row.difference < 0 %}
|
||||||
▼ {{ row.difference }}
|
<span style="color:green;">▼ {{ row.difference }}</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
=
|
=
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@ -115,6 +115,7 @@ def dashboard(request):
|
|||||||
# ------------------
|
# ------------------
|
||||||
year = _get_int(request.GET.get('year'))
|
year = _get_int(request.GET.get('year'))
|
||||||
month = _get_int(request.GET.get('month'))
|
month = _get_int(request.GET.get('month'))
|
||||||
|
period = request.GET.get('period')
|
||||||
|
|
||||||
current_year = date.today().year
|
current_year = date.today().year
|
||||||
|
|
||||||
@ -128,6 +129,24 @@ def dashboard(request):
|
|||||||
# -----------------
|
# -----------------
|
||||||
expenses = Expense.objects.filter(owner=request.user)
|
expenses = Expense.objects.filter(owner=request.user)
|
||||||
|
|
||||||
|
today = date.today()
|
||||||
|
|
||||||
|
if period == 'this_month':
|
||||||
|
selected_year = today.year
|
||||||
|
selected_month = today.month
|
||||||
|
|
||||||
|
elif period == 'last_month':
|
||||||
|
if today.month == 1:
|
||||||
|
selected_year = today.year - 1
|
||||||
|
selected_month = 12
|
||||||
|
else:
|
||||||
|
selected_year = today.year
|
||||||
|
selected_month = today.month
|
||||||
|
|
||||||
|
elif period == 'this_year':
|
||||||
|
selected_year = today.year
|
||||||
|
selected_month = None
|
||||||
|
|
||||||
expenses_filtered = expenses.filter(date__year=selected_year)
|
expenses_filtered = expenses.filter(date__year=selected_year)
|
||||||
|
|
||||||
if selected_month:
|
if selected_month:
|
||||||
@ -211,7 +230,7 @@ def dashboard(request):
|
|||||||
|
|
||||||
if compare_enabled:
|
if compare_enabled:
|
||||||
previous_expenses = Expense.objects.filter(owner=request.user)
|
previous_expenses = Expense.objects.filter(owner=request.user)
|
||||||
|
|
||||||
if selected_month:
|
if selected_month:
|
||||||
# Monthly compare
|
# Monthly compare
|
||||||
if selected_month == 1:
|
if selected_month == 1:
|
||||||
@ -239,7 +258,16 @@ def dashboard(request):
|
|||||||
difference = total_amount - previous_total
|
difference = total_amount - previous_total
|
||||||
|
|
||||||
if previous_total:
|
if previous_total:
|
||||||
percentage = (difference / previous_total) * 100
|
percentage = (difference / previous_total) * 100
|
||||||
|
|
||||||
|
kpi_trend = None
|
||||||
|
if difference is not None:
|
||||||
|
if difference > 0:
|
||||||
|
kpi_trend = 'up'
|
||||||
|
elif difference < 0:
|
||||||
|
kpi_trend = 'down'
|
||||||
|
else:
|
||||||
|
kpi_trend = 'equal'
|
||||||
|
|
||||||
# ------------------
|
# ------------------
|
||||||
# Previous expenses by category
|
# Previous expenses by category
|
||||||
@ -295,4 +323,5 @@ def dashboard(request):
|
|||||||
'kpi_difference': difference,
|
'kpi_difference': difference,
|
||||||
'kpi_percentage': percentage,
|
'kpi_percentage': percentage,
|
||||||
'category_comparison': category_comparison,
|
'category_comparison': category_comparison,
|
||||||
|
'kpi_trend': kpi_trend,
|
||||||
})
|
})
|
||||||
Loading…
Reference in New Issue
Block a user