diff --git a/expenses_manager/expenses/templates/expenses/expense_form.html b/expenses_manager/expenses/templates/expenses/expense_form.html index 59d26c1..5828676 100644 --- a/expenses_manager/expenses/templates/expenses/expense_form.html +++ b/expenses_manager/expenses/templates/expenses/expense_form.html @@ -31,6 +31,6 @@ - Volver + Volver \ No newline at end of file diff --git a/expenses_manager/expenses/templates/expenses/expense_list.html b/expenses_manager/expenses/templates/expenses/expense_list.html index 2e9440e..e2af992 100644 --- a/expenses_manager/expenses/templates/expenses/expense_list.html +++ b/expenses_manager/expenses/templates/expenses/expense_list.html @@ -6,31 +6,67 @@

Mis gastos

+
+ + + + + + + + Limpiar +
+ +
+ Añadir gasto - - - - - - - - - {% for expense in expenses %} - - - - - - - - - {% empty %} - - - +
- {% endfor %} -
FechaImporteCategoríaCuentaAcciones
{{ expense.date }}{{ expense.amount }}{{ expense.category }}{{ expense.account }} Editar Borrar
No hay gastos todavía
+ + + + + + + + + + + {% for expense in expenses %} + + + + + + + {% empty %} + + + + {% endfor %} + +
FechaCategoríaImporte
{{ expense.date }}{{ expense.category.name }}{{ expense.amount }} + Editar + Eliminar +
No hay gastos
\ No newline at end of file diff --git a/expenses_manager/expenses/urls.py b/expenses_manager/expenses/urls.py index 97905a5..14ef95b 100644 --- a/expenses_manager/expenses/urls.py +++ b/expenses_manager/expenses/urls.py @@ -3,7 +3,7 @@ from django.urls import path urlpatterns = [ path('', views.home, name='home'), - # path('', views.expense_list, name='expense_list'), + path('expenses/', views.expense_list, name='expense_list'), path('new/', views.expense_create, name='expense_create'), path('/edit/', views.expense_edit, name='expense_edit'), path('/delete/', views.expense_delete, name='expense_delete'), diff --git a/expenses_manager/expenses/views.py b/expenses_manager/expenses/views.py index ed2e45e..accf304 100644 --- a/expenses_manager/expenses/views.py +++ b/expenses_manager/expenses/views.py @@ -1,5 +1,5 @@ from datetime import date -from .models import Expense +from .models import Category, Expense from .forms import ExpenseForm # from dateutli.relativedelta import relativedelta @@ -98,19 +98,46 @@ def home(request): @login_required def expense_list(request): - expenses = Expense.objects.filter(owner=request.user) + expenses = ( + Expense.objects + .filter(owner=request.user) + .select_related('category') + .order_by('-date') + ) + + # Filters + year = request.GET.get('year') + month = request.GET.get('month') + category = request.GET.get('category') + + if year: + expenses = expenses.filter(date__year=year) + + if month: + expenses = expenses.filter(date__month=month) + + if category: + expenses = expenses.filter(category_id=category) + + categories = Category.objects.filter(owner=request.user).order_by('name') return render ( request, 'expenses/expense_list.html', - {'expenses': expenses}, + { + 'expenses': expenses, + 'categories': categories, + 'selected_year': year, + 'selected_month': month, + 'selected_category': category, + }, ) @login_required def expense_create(request): if request.method == "POST": - form = ExpenseForm(request.POST or None, user=request.user) + form = ExpenseForm(request.POST, user=request.user) if form.is_valid(): expense = form.save(commit=False) expense.owner = request.user