You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

131 lines
4.2 KiB

# Create your views here.
from django.shortcuts import render, get_object_or_404, redirect
from django.contrib.auth.decorators import login_required
from .models import Vehiculo, Repostaje
from .forms import VehiculoForm, RepostajeForm
@login_required
def principal(request):
vehiculos = Vehiculo.objects.all()
repostajes = Repostaje.objects.all()
return render(request, 'repostajes/index.html', {'vehiculos': vehiculos, 'repostajes': repostajes})
# Vistas para los vehiculos
@login_required
def lista_vehiculos(request):
vehiculos = Vehiculo.objects.all()
return render(request, 'repostajes/lista_vehiculos.html', {'vehiculos': vehiculos})
@login_required
def detalle_vehiculo(request, vehiculo_id):
vehiculo = get_object_or_404(Vehiculo, pk=vehiculo_id)
repostajes = Repostaje.objects.filter(vehiculo=vehiculo_id)
return render(request, 'repostajes/detalle_vehiculo.html', {'vehiculo': vehiculo, 'repostajes': repostajes})
@login_required
def nuevo_vehiculo(request):
if request.method == 'POST':
form = VehiculoForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('lista_vehiculos')
else:
form = VehiculoForm()
return render(request, 'repostajes/form_vehiculo.html', {'form': form})
@login_required
def editar_vehiculo(request, vehiculo_id):
vehiculo = get_object_or_404(Vehiculo, pk=vehiculo_id)
if request.method == 'POST':
form = VehiculoForm(request.POST, request.FILES, instance=vehiculo)
if form.is_valid():
form.save()
return redirect('lista_vehiculos')
else:
form = VehiculoForm(instance=vehiculo)
return render(request, 'repostajes/form_vehiculo.html', {'form': form})
@login_required
def eliminar_vehiculo(request, vehiculo_id):
vehiculo = get_object_or_404(Vehiculo, pk=vehiculo_id)
vehiculo.delete()
return redirect('lista_vehiculos')
# Vistas para los repostajes
@login_required
def lista_repostajes(request):
repostajes = Repostaje.objects.all()
return render(request, 'repostajes/lista_repostajes.html', {'repostajes': repostajes})
@login_required
def detalle_repostaje(request, repostaje_id):
repostaje = get_object_or_404(Repostaje, pk=repostaje_id)
return render(request, 'repostajes/detalle_repostaje.html', {'repostaje': repostaje})
@login_required
def nuevo_repostaje(request):
vehiculos = Vehiculo.objects.all() # vamos a ver si hay vehículos dados de alta
if vehiculos:
if request.method == 'POST':
form = RepostajeForm(request.POST, request.FILES)
if form.is_valid():
instancia = form.save(commit=False)
print("nuevo_repostaje: descuento: ", instancia.descuento)
print("nuevo_repostaje: form_cleaned data: ", form.cleaned_data)
aplica_descuento = form.cleaned_data['aplica_descuento']
if aplica_descuento:
instancia.descuento = float(instancia.importe) * 0.03
else:
instancia.descuento = 0.0
instancia.importe = float(instancia.importe) - instancia.descuento
instancia.precioxlitro = instancia.importe / float(instancia.litros)
instancia.save()
return redirect('lista_repostajes')
else:
form = RepostajeForm()
return render(request, 'repostajes/form_repostaje.html', {'form': form})
else:
return render(request, 'repostajes/index.html')
@login_required
def editar_repostaje(request, repostaje_id):
repostaje = get_object_or_404(Repostaje, pk=repostaje_id)
if request.method == 'POST':
form = RepostajeForm(request.POST, request.FILES, instance=repostaje)
if form.is_valid():
form.save()
return redirect('lista_repostajes')
else:
form = RepostajeForm(instance=repostaje)
return render(request, 'repostajes/form_repostaje.html', {'form': form})
@login_required
def eliminar_repostaje(request, repostaje_id):
repostaje = get_object_or_404(Repostaje, pk=repostaje_id)
repostaje.delete()
return redirect('lista_repostajes')