Added tags

This commit is contained in:
JKuijperM 2026-01-27 20:10:34 +01:00
parent 86b1d8d61b
commit a073bdb142
3 changed files with 35 additions and 1 deletions

View File

@ -1,5 +1,5 @@
from django import forms from django import forms
from .models import Expense, Category from .models import Expense, Category, Tag
class ExpenseForm(forms.ModelForm): class ExpenseForm(forms.ModelForm):
@ -11,6 +11,7 @@ class ExpenseForm(forms.ModelForm):
if user: if user:
self.fields['category'].queryset = Category.objects.filter(owner=user) self.fields['category'].queryset = Category.objects.filter(owner=user)
self.fields['tags'].queryset = Tag.objects.filter(owner=user)
class Meta: class Meta:
model = Expense model = Expense

View File

@ -65,6 +65,7 @@
<th>Fecha</th> <th>Fecha</th>
<th>Categoría</th> <th>Categoría</th>
<th>Importe</th> <th>Importe</th>
<th>Etiquetas</th>
<th></th> <th></th>
</tr> </tr>
</thead> </thead>
@ -74,6 +75,13 @@
<td>{{ expense.date }}</td> <td>{{ expense.date }}</td>
<td>{{ expense.category.name }}</td> <td>{{ expense.category.name }}</td>
<td>{{ expense.amount }}</td> <td>{{ expense.amount }}</td>
<td>
{% for tag in expenses.tags.all %}
<span>{{ tag.name }}</span>{% if not forloop.last %}, {% endif %}
{% empty %}
-
{% endfor %}
</td>
<td> <td>
<a href="{% url 'expense_edit' expense.id %}">Editar</a> <a href="{% url 'expense_edit' expense.id %}">Editar</a>
<a href="{% url 'expense_delete' expense.id %}">Eliminar</a> <a href="{% url 'expense_delete' expense.id %}">Eliminar</a>

View File

@ -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()