Improvement in the expense_list view and html
This commit is contained in:
parent
b75efb1553
commit
9e2c4f17db
@ -31,6 +31,6 @@
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<a href="{% url 'home' %}">Volver</a>
|
||||
<a href="{% url 'expense_list' %}">Volver</a>
|
||||
</body>
|
||||
</html>
|
||||
@ -6,31 +6,67 @@
|
||||
<body>
|
||||
<h1>Mis gastos</h1>
|
||||
|
||||
<form method="get">
|
||||
<label>
|
||||
Año:
|
||||
<input type="number" name="year" value="{{ selected_year }}">
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Mes:
|
||||
<input type="number" name="month" value="{{ selected_month }}">
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Categoría:
|
||||
<select name="category">
|
||||
<option value="">Todas</option>
|
||||
{% for cat in categories %}
|
||||
<option value="{{ cat.id }}"
|
||||
{% if selected_category == cat.id|stringformat:"s" %}selected{% endif%}
|
||||
>
|
||||
{{ cat.name }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<button type="submit">Filtrar</button>
|
||||
<a href="{% url 'expense_list' %}">Limpiar</a>
|
||||
</form>
|
||||
|
||||
<br>
|
||||
|
||||
<a href="{% url 'expense_create' %}">Añadir gasto</a>
|
||||
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th>Fecha</th>
|
||||
<th>Importe</th>
|
||||
<th>Categoría</th>
|
||||
<th>Cuenta</th>
|
||||
<th>Acciones</th>
|
||||
</tr>
|
||||
{% for expense in expenses %}
|
||||
<tr>
|
||||
<td>{{ expense.date }}</td>
|
||||
<td>{{ expense.amount }}</td>
|
||||
<td>{{ expense.category }}</td>
|
||||
<td>{{ expense.account }}</td>
|
||||
<td> <a href="{% url 'expense_edit' expense.pk %}">Editar</a></td>
|
||||
<td> <a href="{% url 'expense_delete' expense.pk %}">Borrar</a></td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr>
|
||||
<td colspan="4">No hay gastos todavía</td>
|
||||
</tr>
|
||||
<br>
|
||||
|
||||
{% endfor %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Fecha</th>
|
||||
<th>Categoría</th>
|
||||
<th>Importe</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for expense in expenses %}
|
||||
<tr>
|
||||
<td>{{ expense.date }}</td>
|
||||
<td>{{ expense.category.name }}</td>
|
||||
<td>{{ expense.amount }}</td>
|
||||
<td>
|
||||
<a href="{% url 'expense_edit' expense.id %}">Editar</a>
|
||||
<a href="{% url 'expense_delete' expense.id %}">Eliminar</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr>
|
||||
<td colspan="4">No hay gastos</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@ -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('<int:pk>/edit/', views.expense_edit, name='expense_edit'),
|
||||
path('<int:pk>/delete/', views.expense_delete, name='expense_delete'),
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user