diff --git a/expenses_manager/expenses/static/expenses/css/base.css b/expenses_manager/expenses/static/expenses/css/base.css
index dd5d0e3..533ca0a 100644
--- a/expenses_manager/expenses/static/expenses/css/base.css
+++ b/expenses_manager/expenses/static/expenses/css/base.css
@@ -4,6 +4,10 @@ body {
background: #f7f7f7;
}
+a.danger {
+ color: #b91c1c;
+}
+
.topbar {
background: #1f2937;
padding: 12px 20px;
@@ -175,4 +179,30 @@ tbody tr:hover {
.btn.secondary {
background: #6b7280;
+}
+
+.messages {
+ margin: 1rem 0;
+}
+
+.message {
+ padding: 0.6rem 0.8rem;
+ border-radius: 6px;
+ margin-bottom: 0.5rem;
+ font-size: 0.9rem;
+}
+
+.message.success {
+ background: #e6f4ea;
+ color: #166534;
+}
+
+.message.error {
+ background: #fee2e2;
+ color: #991b1b;
+}
+
+.message.warning {
+ background: #fef3c7;
+ color: #92400e;
}
\ No newline at end of file
diff --git a/expenses_manager/expenses/templates/expenses/account_confirm_delete.html b/expenses_manager/expenses/templates/expenses/account_confirm_delete.html
index 6ccaca9..0d91fcb 100644
--- a/expenses_manager/expenses/templates/expenses/account_confirm_delete.html
+++ b/expenses_manager/expenses/templates/expenses/account_confirm_delete.html
@@ -11,8 +11,8 @@
diff --git a/expenses_manager/expenses/templates/expenses/expense_confirm_delete.html b/expenses_manager/expenses/templates/expenses/expense_confirm_delete.html
index d5faf94..52366ae 100644
--- a/expenses_manager/expenses/templates/expenses/expense_confirm_delete.html
+++ b/expenses_manager/expenses/templates/expenses/expense_confirm_delete.html
@@ -1,24 +1,21 @@
{% extends "expenses/base.html" %}
-{% block title %}Borrar gasto{% endblock %}
+{% block title %}Eliminar gasto{% endblock %}
{% block content %}
- Borrar gasto
+ Eliminar gasto
- ¿Seguro que quieres borrar este gasto?
+ ¿Seguro que quieres eliminar el gasto de
+ {{ expense.amount }}€
+ del {{ expense.date }} perteneciente a
+ {{ expense.account }}?
-
- - Fecha: {{ expense.date }}
- - Importe: {{ expense.amount }}
- - Categoría: {{ expense.category.name }}
-
-
- Cancelar
{% endblock %}
diff --git a/expenses_manager/expenses/templates/expenses/expense_list.html b/expenses_manager/expenses/templates/expenses/expense_list.html
index 33d680f..9ff88b1 100644
--- a/expenses_manager/expenses/templates/expenses/expense_list.html
+++ b/expenses_manager/expenses/templates/expenses/expense_list.html
@@ -111,7 +111,7 @@
Editar
- Eliminar
+ Eliminar
|
{% empty %}
diff --git a/expenses_manager/expenses/templates/expenses/income_confirm_delete.html b/expenses_manager/expenses/templates/expenses/income_confirm_delete.html
index bda0fbe..2305fd1 100644
--- a/expenses_manager/expenses/templates/expenses/income_confirm_delete.html
+++ b/expenses_manager/expenses/templates/expenses/income_confirm_delete.html
@@ -1,23 +1,20 @@
{% extends "expenses/base.html" %}
-{% block title %}Borrar ingreso{% endblock %}
+{% block title %}Eliminar ingreso{% endblock %}
{% block content %}
- Borrar ingreso
+ Eliminar ingreso
- ¿Seguro que quieres borrar este ingreso?
+ ¿Seguro que quieres eliminar el ingreso de
+ {{ income.amount }}€
+ del {{ expense.date }} perteneciente a
+ {{ income.account }}?
-
- - Fecha: {{ income.date }}
- - Importe: {{ income.amount }}
- - Categoría: {{ income.category.name }}
-
-
- Cancelar
{% endblock %}
\ No newline at end of file
diff --git a/expenses_manager/expenses/templates/expenses/income_list.html b/expenses_manager/expenses/templates/expenses/income_list.html
index 6e68463..911e5fa 100644
--- a/expenses_manager/expenses/templates/expenses/income_list.html
+++ b/expenses_manager/expenses/templates/expenses/income_list.html
@@ -24,7 +24,7 @@
{{ income.date }} |
Editar
- Eliminar
+ Eliminar
|
{% empty %}
diff --git a/expenses_manager/expenses/templates/expenses/tag_confirm_delete.html b/expenses_manager/expenses/templates/expenses/tag_confirm_delete.html
index afc767d..ea1bd01 100644
--- a/expenses_manager/expenses/templates/expenses/tag_confirm_delete.html
+++ b/expenses_manager/expenses/templates/expenses/tag_confirm_delete.html
@@ -3,10 +3,15 @@
{% block content %}
Eliminar etiqueta
+
+ ¿Seguro que quieres eliminar la etiqueta
+ {{ tag.name }}€?
+
+
- Cancelar
{% endblock %}
\ No newline at end of file
diff --git a/expenses_manager/expenses/templates/expenses/tag_list.html b/expenses_manager/expenses/templates/expenses/tag_list.html
index 911132b..1291ade 100644
--- a/expenses_manager/expenses/templates/expenses/tag_list.html
+++ b/expenses_manager/expenses/templates/expenses/tag_list.html
@@ -10,7 +10,7 @@
{{ tag.name }}
Editar
- Eliminar
+ Eliminar
{% empty %}
No hay etiquetas
diff --git a/expenses_manager/expenses/views.py b/expenses_manager/expenses/views.py
index daa338e..2bdb1c0 100644
--- a/expenses_manager/expenses/views.py
+++ b/expenses_manager/expenses/views.py
@@ -1,5 +1,6 @@
from datetime import date
from operator import truediv
+from django.contrib import messages
from .models import Account, Category, Expense, Tag, Income
from .forms import ExpenseForm, IncomeForm, TagForm, AccountForm
# from dateutli.relativedelta import relativedelta
@@ -211,6 +212,8 @@ def expense_create(request):
expense.owner = request.user
expense.save()
form.save_m2m()
+
+ messages.success(request, 'Gasto creado correctamente.')
return redirect('expense_list')
else:
form = ExpenseForm(user=request.user)
@@ -233,6 +236,7 @@ def expense_edit(request, pk):
form = ExpenseForm(request.POST or None, instance=expense, user=request.user)
if form.is_valid():
expense = form.save()
+ messages.success(request, 'Gasto actualizado')
return redirect('expense_list')
else:
form = ExpenseForm(instance=expense, user=request.user)
@@ -254,6 +258,7 @@ def expense_delete(request, pk):
if request.method == 'POST':
expense.delete()
+ messages.success(request, 'Gasto eliminado correctamente.')
return redirect('expense_list')
return render(
@@ -547,6 +552,7 @@ def tag_create(request):
tag = form.save(commit=False)
tag.owner = request.user
tag.save()
+ messages.success(request, 'Etiqueta creada correctamente.')
return redirect('tag_list')
else:
form = TagForm()
@@ -570,6 +576,7 @@ def tag_edit(request, pk):
form = TagForm(request.POST, instance=tag)
if form.is_valid():
form.save()
+ messages.success(request, 'Etiqueta actualizada.')
return redirect('tag_list')
else:
form = TagForm(instance=tag)
@@ -591,6 +598,7 @@ def tag_delete(request, pk):
if request.method == 'POST':
tag.delete()
+ messages.success(request, 'Etiqueta eliminada.')
return redirect('tag_list')
return render(
@@ -618,6 +626,7 @@ def account_create(request):
account = form.save(commit=False)
account.owner = request.user
account.save()
+ messages.success(request, 'Cuenta creada correctamente.')
return redirect('account_list')
else:
form = AccountForm()
@@ -640,6 +649,7 @@ def account_edit(request, pk):
form = AccountForm(request.POST, instance=account)
if form.is_valid():
form.save()
+ messages.success(request, 'Cuenta actualizada.')
return redirect('account_list')
else:
form = AccountForm(instance=account)
@@ -657,6 +667,7 @@ def account_delete(request, pk):
if request.method == 'POST':
account.active = False
account.save()
+ messages.success(request, 'Cuenta eliminada.')
return redirect('account_list')
return render(
@@ -673,6 +684,7 @@ def income_create(request):
income = form.save(commit=False)
income.owner = request.user
income.save()
+ messages.success(request, 'Ingreso creado correctamente.')
return redirect('income_list')
else:
form = IncomeForm(user=request.user)
@@ -705,6 +717,7 @@ def income_edit(request, pk):
form = IncomeForm(request.POST, instance=income, user=request.user)
if form.is_valid():
form.save()
+ messages.success(request, 'Ingreso actualizado.')
return redirect('income_list')
else:
form = IncomeForm(instance=income, user=request.user)
@@ -721,6 +734,7 @@ def income_delete(request, pk):
if request.method == 'POST':
income.delete()
+ messages.success(request, 'Ingreso eliminado.')
return redirect('income_list')
return render(
diff --git a/expenses_manager/expenses_manager/settings.py b/expenses_manager/expenses_manager/settings.py
index dec671f..1d7817b 100644
--- a/expenses_manager/expenses_manager/settings.py
+++ b/expenses_manager/expenses_manager/settings.py
@@ -13,6 +13,7 @@ https://docs.djangoproject.com/en/5.2/ref/settings/
import os
from pathlib import Path
from dotenv import load_dotenv
+from django.contrib.messages import constants as messages
load_dotenv()