Beispiel #1
0
def cancelar_reserva(request, lr_id=None):
    b = Bussiness()
    if request.method == 'POST':
        form = CancelarReservaForm(data=request.POST)
        if form.is_valid():
            reserva = form.cleaned_data["turnos"]
            motivo = form.cleaned_data["motivo"]
            if b.cancelar_reserva(reserva, motivo, request.user.get_profile()):
                messages.success(request, u'Reserva cancelada con éxito')
            siguiente = form.cleaned_data['next'] if form.cleaned_data['next'] else request.path
            return HttpResponseRedirect(siguiente)
    elif lr_id and LineaDeReserva.objects.filter(id=lr_id).exists():
        lr = LineaDeReserva.objects.get(id=lr_id)
        if lr.estado != Turno.RESERVADO or lr.turno.estado != Turno.RESERVADO:
            messages.warning(request, u'No puede cancelar una reserva con un estado distinto a reservado')
            logger.warning('Intentando cancelar la linea de reserva %s con estado %s'%(lr.id,lr.estado))
        form = CancelarReservaForm(initial={'afiliado':lr.reserva.afiliado.id,
                                            'numero':lr.reserva.afiliado.numero,
                                            'dni':lr.reserva.afiliado.dni,
                                            'next':request.GET.get('next')
                                            },
                                   lr=lr)
    else:
        form = CancelarReservaForm(initial=request.GET)
    return render(request, "turno/cancelar_reserva.html", locals())