diff --git a/expenses_manager/expenses/forms.py b/expenses_manager/expenses/forms.py index 51df4db..abe8fc1 100644 --- a/expenses_manager/expenses/forms.py +++ b/expenses_manager/expenses/forms.py @@ -1,5 +1,5 @@ from django import forms -from .models import Expense, Category +from .models import Expense, Category, Tag class ExpenseForm(forms.ModelForm): @@ -11,6 +11,7 @@ class ExpenseForm(forms.ModelForm): if user: self.fields['category'].queryset = Category.objects.filter(owner=user) + self.fields['tags'].queryset = Tag.objects.filter(owner=user) class Meta: model = Expense diff --git a/expenses_manager/expenses/templates/expenses/expense_list.html b/expenses_manager/expenses/templates/expenses/expense_list.html index 0e37d34..d801772 100644 --- a/expenses_manager/expenses/templates/expenses/expense_list.html +++ b/expenses_manager/expenses/templates/expenses/expense_list.html @@ -65,6 +65,7 @@ Fecha Categoría Importe + Etiquetas @@ -74,6 +75,13 @@ {{ expense.date }} {{ expense.category.name }} {{ expense.amount }} + + {% for tag in expenses.tags.all %} + {{ tag.name }}{% if not forloop.last %}, {% endif %} + {% empty %} + - + {% endfor %} + Editar Eliminar diff --git a/expenses_manager/expenses/tests/test_expenses.py b/expenses_manager/expenses/tests/test_expenses.py new file mode 100644 index 0000000..53d4151 --- /dev/null +++ b/expenses_manager/expenses/tests/test_expenses.py @@ -0,0 +1,25 @@ +import pytest +from datetime import date +from decimal import Decimal +from django.urls import reverse +from expenses.models import Expense, Category, Tag + +pytestmark = pytest.mark.django_db + +def test_expense_can_have_tags(client, django_user_model): + user = django_user_model.objects.create_user(username='test', password='1234') + client.login(username='test', password='1234') + + tag = Tag.objects.create(name='Food', owner=user) + category = Category.objects.create(name='General', owner=user) + + expense = Expense.objects.create( + owner=user, + category=category, + amount=10, + date=date.today(), + ) + expense.tags.add(tag) + + assert expense.tags.count() == 1 + assert tag in expense.tags.all() \ No newline at end of file