Exemplo n.º 1
0
def devolucao_edit(request, pk):
    devolucao = get_object_or_404(Devolucao, pk=pk)
    if request.method == "POST":
        form = DevolucaoForm(request.POST, instance=devolucao)
        if form.is_valid():
            devolucao = form.save(commit=False)
            devolucao.save()
            messages.success(request, UPDATE_MSG)
            return HttpResponseRedirect(r('devolucao'))
    else:
        form = DevolucaoForm(instance=devolucao, initial={'locacao': devolucao.locacao.pk})
        form.set_locacao(Locacao.objects.filter(pk=devolucao.locacao.pk))

    context = {'label': 'Editar', 'form': form}

    return render(request, 'devolucao/devolucao.html', context)
Exemplo n.º 2
0
def devolucao_new(request):
    form = DevolucaoForm()
    context = {'label': 'Cadastrar', 'form': form}
    if request.method == 'GET':
        pk = request.GET.get('locacao',None)
        try:
            locacao = Locacao.objects.get(pk=pk)
            if not locacao.devolvido:
                form = DevolucaoForm(initial={'locacao': pk})
                form.set_locacao(Locacao.objects.filter(pk=pk))
                context['form'] = form
            else:
                return HttpResponseRedirect(r('locacao'))
        except:
            return HttpResponseRedirect(r('locacao'))

        return render(request, 'devolucao/devolucao.html', context)

    form = DevolucaoForm(request.POST)

    if not form.is_valid():
        context['form'] = form
        return render(request, 'devolucao/devolucao.html', context)

    devolucao = form.save()

    messages.success(request, "Devolução efetuada com sucesso")

    # verificar se tem reserva para esse veiculo e enviar email para o cliente
    reserva = Reserva.objects.filter(veiculo=devolucao.locacao.veiculo, finalizada=False).order_by('created_at')

    if reserva:
        # envia para o primeiro cliente a fazer a reserva
        _send_email('Reserva Disponível',
                    settings.DEFAULT_FROM_EMAIL,
                    reserva[0].cliente.email,
                    'reserva/reserva_email.txt',
                    { 'reserva': reserva[0] }
                    )

    return HttpResponseRedirect(r('devolucao'))