Added the Edit and Delete options to fuel
This commit is contained in:
parent
a2eec67491
commit
61047df4bf
@ -128,12 +128,13 @@
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td class="table-actions">
|
||||
{% if expense.category.slug == 'gasolina' %}
|
||||
<a href="{% url 'fuel_edit' expense.id %}">Editar</a>
|
||||
{% if expense.fuel_data %}
|
||||
<a href="{% url 'fuel_edit' expense.id %}?next={{ request.get_full_path|urlencode }}">Editar</a>
|
||||
<a href="{% url 'fuel_delete' expense.id %}?next={{ request.get_full_path|urlencode }}" class="danger">Eliminar</a>
|
||||
{% else %}
|
||||
<a href="{% url 'expense_edit' expense.id %}">Editar</a>
|
||||
{% endif %}
|
||||
<a href="{% url 'expense_delete' expense.id %}" class="danger">Eliminar</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
|
||||
26
expenses_manager/expenses/templates/fuel/confirm_delete.html
Normal file
26
expenses_manager/expenses/templates/fuel/confirm_delete.html
Normal file
@ -0,0 +1,26 @@
|
||||
{% extends "expenses/base.html" %}
|
||||
|
||||
{% block title %}
|
||||
Repostajes
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Eliminar repostaje.</h2>
|
||||
|
||||
<p>
|
||||
¿Seguro que quieres eliminar el repostaje del
|
||||
<strong>{{ fuel.expense.date}}</strong>
|
||||
({{ fuel.liters }}L por {{fuel.expense.amount}}€)?
|
||||
</p>
|
||||
|
||||
<p class="form-errors">
|
||||
Se eliminará también el gasto asociado en el listado de gastos.
|
||||
</p>
|
||||
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{% if next %}<input type="hidden" name="next" value="{{ next }}">{% endif %}
|
||||
<button class="btn danger">Eliminar</button>
|
||||
<a class="btn" href="{% url 'fuel_list' %}">Cancelar</a>
|
||||
</form>
|
||||
{% endblock %}
|
||||
@ -19,6 +19,7 @@
|
||||
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{% if next %}<input type="hidden" name="next" value="{{ next }}">{% endif %}
|
||||
{{ form.as_p }}
|
||||
<button type="submit">
|
||||
{% if editing %}
|
||||
@ -29,9 +30,11 @@
|
||||
</button>
|
||||
</form>
|
||||
|
||||
{% if editing %}
|
||||
<a href="{% url 'expense_list' %}">Volver</a>
|
||||
{% if next %}
|
||||
<a class="btn" href="{{ next }}">Volver</a>
|
||||
{% elif editing %}
|
||||
<a class="btn" href="{% url 'expense_list' %}">Volver</a>
|
||||
{% else %}
|
||||
<a href="{% url 'fuel_list' %}">Volver</a>
|
||||
<a class="btn" href="{% url 'fuel_list' %}">Volver</a>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@ -21,6 +21,7 @@
|
||||
<th>Gasto</th>
|
||||
<th>€/L</th>
|
||||
<th>Km desde anterior</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -32,6 +33,10 @@
|
||||
<td>{{ fuel.expense.amount }}</td>
|
||||
<td>{{ fuel.price_per_liter|floatformat:2 }}</td>
|
||||
<td>{{ fuel.km_since_previous }}</td>
|
||||
<td class="table-actions">
|
||||
<a href="{% url 'fuel_edit' fuel.expense.id %}?next={{ request.get_full_path|urlencode }}">Editar</a>
|
||||
<a href="{% url 'fuel_delete' fuel.expense.id %}?next={{ request.get_full_path|urlencode }}" class="danger">Eliminar</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
@ -23,6 +23,7 @@ urlpatterns = [
|
||||
path('fuel/', views.fuel_list, name='fuel_list'),
|
||||
path('fuel/create/', views.fuel_create, name='fuel_create'),
|
||||
path('fuel/<int:pk>/edit/', views.fuel_edit, name='fuel_edit'),
|
||||
path('fuel/<int:pk>/delete/', views.fuel_delete, name='fuel_delete'),
|
||||
path('categories/', views.category_list, name='category_list'),
|
||||
path('categories/<int:pk>/edit/', views.category_edit, name='category_edit'),
|
||||
path('categories/<int:pk>/delete/', views.category_delete, name='category_delete'),
|
||||
|
||||
@ -18,6 +18,7 @@ from django.db.models import Sum, ProtectedError
|
||||
from django.db.models.functions import ExtractMonth, ExtractYear, ExtractDay
|
||||
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.utils.http import url_has_allowed_host_and_scheme
|
||||
from django.shortcuts import get_object_or_404, render, redirect
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@ -29,6 +30,19 @@ def _get_int(value):
|
||||
return None
|
||||
|
||||
|
||||
def _redirect_back(request, fallback):
|
||||
next_url = request.POST.get("next") or request.GET.get("next")
|
||||
|
||||
if next_url and url_has_allowed_host_and_scheme(
|
||||
next_url,
|
||||
allowed_hosts={request.get_host()},
|
||||
require_https=request.is_secure(),
|
||||
):
|
||||
return redirect(next_url)
|
||||
|
||||
return redirect(fallback)
|
||||
|
||||
|
||||
def sub_months(year, month, n):
|
||||
month -= n
|
||||
while month <= 0:
|
||||
@ -808,7 +822,7 @@ def fuel_edit(request, pk):
|
||||
fuel.liters = form.cleaned_data["liters"]
|
||||
fuel.save()
|
||||
|
||||
return redirect("expense_list")
|
||||
return _redirect_back(request, "expense_list")
|
||||
else:
|
||||
fuel = expense.fuel_data
|
||||
# Initialize manually
|
||||
@ -823,13 +837,39 @@ def fuel_edit(request, pk):
|
||||
user=request.user,
|
||||
)
|
||||
|
||||
next_url = request.POST.get("next") or request.GET.get("next", "")
|
||||
|
||||
return render(
|
||||
request,
|
||||
"fuel/create.html",
|
||||
{
|
||||
"active_menu": "expenses",
|
||||
"active_menu": "fuel" if next_url.startswith("/fuel") else "expenses",
|
||||
"form": form,
|
||||
"editing": True,
|
||||
"next": next_url
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@login_required
|
||||
def fuel_delete(request, pk):
|
||||
expense = get_object_or_404(Expense, pk=pk, owner=request.user)
|
||||
fuel = get_object_or_404(FuelEntry, expense=expense)
|
||||
|
||||
if request.method == "POST":
|
||||
expense.delete()
|
||||
messages.success(request, "Repostaje eliminado.")
|
||||
return _redirect_back(request, "fuel_list")
|
||||
|
||||
next_url = request.POST.get("next") or request.GET.get("next", "")
|
||||
|
||||
return render(
|
||||
request,
|
||||
"fuel/confirm_delete.html",
|
||||
{
|
||||
"active_menu":"fuel" if next_url.startswith("/fuel") else "expenses",
|
||||
"fuel": fuel,
|
||||
"next": next_url
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user