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)
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'))