WIP Income
This commit is contained in:
parent
5f5dd87859
commit
5fbf3cfc54
@ -0,0 +1,27 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Borrar ingreso</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Borrar ingreso</h1>
|
||||
|
||||
<p>
|
||||
¿Seguro que quieres borrar este ingreso?
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>Fecha: {{ income.date }}</li>
|
||||
<li>Importe: {{ income.amount }}</li>
|
||||
<li>Categoría: {{ income.category.name }}</li>
|
||||
</ul>
|
||||
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<button type="submit">Sí, borrar</button>
|
||||
</form>
|
||||
|
||||
<a href="{% url 'income_list' %}">Cancelar</a>
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,36 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
{% if form.instance.pk %}
|
||||
Editar ingreso
|
||||
{% else %}
|
||||
Nuevo ingreso
|
||||
{% endif %}
|
||||
</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>
|
||||
{% if form.instance.pk %}
|
||||
Editar ingreso
|
||||
{% else %}
|
||||
Nuevo ingreso
|
||||
{% endif %}
|
||||
</h1>
|
||||
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<button type="submit">
|
||||
{% if form.instance.pk %}
|
||||
Guardar ingreso
|
||||
{% else %}
|
||||
Crear ingreso
|
||||
{% endif %}
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<a href="{% url 'income_list' %}">Volver</a>
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,44 @@
|
||||
{% load static %}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Ingresos</title>
|
||||
<link rel="stylesheet" href="{% static 'expenses/css/base.css' %}">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Mis ingresos</h1>
|
||||
|
||||
<a href="{% url 'income_create' %}">➕ Nuevo ingreso</a>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Nombre</th>
|
||||
<th>Cuenta</th>
|
||||
<th>Cantidad</th>
|
||||
<th>Fecha ingreso</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for income in incomes %}
|
||||
<tr>
|
||||
<td>{{ income.name }}</td>
|
||||
<td>{{ income.account }}</td>
|
||||
<td>{{ income.amount|floatformat:2 }}</td>
|
||||
<td>{{ income.date }}</td>
|
||||
<td>
|
||||
<a href="{% url 'income_edit' income.id %}">Editar</a>
|
||||
<a href="{% url 'income_delete' income.id %}">Eliminar</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr>
|
||||
<td colspan="5">No hay ingresos</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@ -16,4 +16,8 @@ urlpatterns = [
|
||||
path('accounts/new/', views.account_create, name='account_create'),
|
||||
path('accounts/<int:pk>/edit/', views.account_edit, name='account_edit'),
|
||||
path('accounts/<int:pk>/delete/', views.account_delete, name='account_delete'),
|
||||
path('incomes/', views.income_list, name='income_list'),
|
||||
path('incomes/new/', views.income_create, name='income_create'),
|
||||
path('incomes/<int:pk>/edit/', views.income_edit, name='income_edit'),
|
||||
path('incomes/<int:pk>/delete/', views.income_delete, name='income_delete'),
|
||||
]
|
||||
@ -1,6 +1,6 @@
|
||||
from datetime import date
|
||||
from operator import truediv
|
||||
from .models import Account, Category, Expense, Tag
|
||||
from .models import Account, Category, Expense, Tag, Income
|
||||
from .forms import ExpenseForm, IncomeForm, TagForm, AccountForm
|
||||
# from dateutli.relativedelta import relativedelta
|
||||
|
||||
@ -654,7 +654,7 @@ def income_create(request):
|
||||
income = form.save(commit=False)
|
||||
income.owner = request.user
|
||||
income.save()
|
||||
return redirect('home')
|
||||
return redirect('income_list')
|
||||
else:
|
||||
form = IncomeForm(user=request.user)
|
||||
|
||||
@ -664,5 +664,49 @@ def income_create(request):
|
||||
{'form': form}
|
||||
)
|
||||
|
||||
@login_required
|
||||
def income_list(request):
|
||||
incomes = Income.objects.filter(owner=request.user)
|
||||
|
||||
return render(
|
||||
request,
|
||||
'expenses/income_list.html',
|
||||
{'incomes': incomes}
|
||||
)
|
||||
|
||||
@login_required
|
||||
def income_edit(request, pk):
|
||||
income = get_object_or_404(
|
||||
Income,
|
||||
pk=pk,
|
||||
owner=request.user
|
||||
)
|
||||
|
||||
if request.method == 'POST':
|
||||
form = IncomeForm(request.POST, instance=income, user=request.user)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
return redirect('income_list')
|
||||
else:
|
||||
form = IncomeForm(instance=income, user=request.user)
|
||||
|
||||
return render(
|
||||
request,
|
||||
'expenses/income_form.html',
|
||||
{'form': form}
|
||||
)
|
||||
|
||||
@login_required
|
||||
def income_delete(request, pk):
|
||||
income = get_object_or_404(Income, pk=pk, owner=request.user)
|
||||
|
||||
if request.method == 'POST':
|
||||
income.delete()
|
||||
return redirect('income_list')
|
||||
|
||||
return render(
|
||||
request,
|
||||
'expenses/income_confirm_delete.html',
|
||||
{'income':income}
|
||||
)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user