From 36e0cfaa4490971adfaf1bf8731d0f74db61e228 Mon Sep 17 00:00:00 2001 From: JKuijperM Date: Wed, 28 Jan 2026 15:20:20 +0100 Subject: [PATCH] Filter by tags in expenses list --- .../expenses/static/expenses/css/base.css | 15 +++++++++++ .../templates/expenses/expense_list.html | 27 ++++++++++++++----- expenses_manager/expenses/views.py | 8 +++++- 3 files changed, 43 insertions(+), 7 deletions(-) diff --git a/expenses_manager/expenses/static/expenses/css/base.css b/expenses_manager/expenses/static/expenses/css/base.css index c847f94..cd94a86 100644 --- a/expenses_manager/expenses/static/expenses/css/base.css +++ b/expenses_manager/expenses/static/expenses/css/base.css @@ -18,4 +18,19 @@ .card-chart canvas { width: 100% !important; height: 220px !important; +} + +.tag{ + display: inline-block; + padding: 2px 6px; + margin-right: 4px; + background: #eef2f7; + border-radius: 4px; + font-size: 0.85rem; + text-decoration: none; + color: #333; +} + +.tag:hover { + background: #dbe3ee; } \ 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 c74bb3d..4eae62c 100644 --- a/expenses_manager/expenses/templates/expenses/expense_list.html +++ b/expenses_manager/expenses/templates/expenses/expense_list.html @@ -1,7 +1,9 @@ +{% load static %} - Gastos + Gastos +

Mis gastos

@@ -43,6 +45,18 @@ + + + Limpiar @@ -77,7 +91,8 @@ {{ expense.amount }} {% for tag in expense.tags.all %} - {{ tag.name }}{% if not forloop.last %}, {% endif %} + + {{ tag.name }} {% empty %} - {% endfor %} @@ -98,15 +113,15 @@ diff --git a/expenses_manager/expenses/views.py b/expenses_manager/expenses/views.py index a276f76..373cdb0 100644 --- a/expenses_manager/expenses/views.py +++ b/expenses_manager/expenses/views.py @@ -102,7 +102,7 @@ def expense_list(request): expenses = Expense.objects.filter(owner=request.user) categories = Category.objects.filter(owner=request.user) - + year_list = ( Expense.objects.filter(owner=request.user) .dates('date', 'year') @@ -114,6 +114,7 @@ def expense_list(request): year = _get_int(request.GET.get('year')) month = _get_int(request.GET.get('month')) category = _get_int(request.GET.get('category')) + tag_id = _get_int(request.GET.get('tag')) if year: expenses = expenses.filter(date__year=year) @@ -124,6 +125,9 @@ def expense_list(request): if category: expenses = expenses.filter(category_id=category) + if tag_id: + expenses = expenses.filter(tags__id=tag_id) + expenses = expenses.order_by('-date') total_amount = expenses.aggregate( @@ -158,6 +162,8 @@ def expense_list(request): 'kpi_total': total_amount, 'kpi_count': expense_count, 'kpi_categories': category_count, + 'selected_tag': tag_id, + 'tags': Tag.objects.filter(owner=request.user), }, )