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/new/', views.account_create, name='account_create'),
|
||||||
path('accounts/<int:pk>/edit/', views.account_edit, name='account_edit'),
|
path('accounts/<int:pk>/edit/', views.account_edit, name='account_edit'),
|
||||||
path('accounts/<int:pk>/delete/', views.account_delete, name='account_delete'),
|
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 datetime import date
|
||||||
from operator import truediv
|
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 .forms import ExpenseForm, IncomeForm, TagForm, AccountForm
|
||||||
# from dateutli.relativedelta import relativedelta
|
# from dateutli.relativedelta import relativedelta
|
||||||
|
|
||||||
@ -654,7 +654,7 @@ def income_create(request):
|
|||||||
income = form.save(commit=False)
|
income = form.save(commit=False)
|
||||||
income.owner = request.user
|
income.owner = request.user
|
||||||
income.save()
|
income.save()
|
||||||
return redirect('home')
|
return redirect('income_list')
|
||||||
else:
|
else:
|
||||||
form = IncomeForm(user=request.user)
|
form = IncomeForm(user=request.user)
|
||||||
|
|
||||||
@ -664,5 +664,49 @@ def income_create(request):
|
|||||||
{'form': form}
|
{'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