def cria_palpite(request): # Formulário enviado form = PalpiteForm(request.POST or None, user=request.user, ativo=1) palpite_realizado = Palpite.objects.filter(id_calendarioGP__ativo=1, participante_id=request.user).first() # prova_ativa = Palpite.objects.filter(Q(id_calendarioGP__ativo=1) | # Q(participante_id=request.user)).first() if palpite_realizado: messages.add_message(request, messages.INFO, "Palpite ja realizado para esse GP.") return render(request, "cadastro_palpite_old.html") else: if form.is_valid(): form.save() envia_email(request) return redirect("sucesso") return render(request, "cadastro_palpite_old.html", {"form": form})
def cria_palpite(request): # Formulário enviado form = PalpiteForm(request.POST or None, user=request.user, ativo=1) palpite_realizado = Palpite.objects.filter( id_calendarioGP__ativo=1, participante_id=request.user).first() # prova_ativa = Palpite.objects.filter(Q(id_calendarioGP__ativo=1) | # Q(participante_id=request.user)).first() if palpite_realizado: messages.add_message(request, messages.INFO, 'Palpite ja realizado para esse GP.') return render(request, "cadastro_palpite_old.html") else: if form.is_valid(): form.save() envia_email(request) return redirect('sucesso') return render(request, "cadastro_palpite_old.html", {'form': form})
def envia_email(request): form_palpite = PalpiteForm(request.POST) if form_palpite.is_valid(): participante = form_palpite.cleaned_data["participante"] gp = form_palpite.cleaned_data["id_calendarioGP"] pole = form_palpite.cleaned_data["palp_pole"] seg_larg = form_palpite.cleaned_data["palp_segLarg"] ter_larg = form_palpite.cleaned_data["palp_tercLarg"] qua_larg = form_palpite.cleaned_data["palp_quaLarg"] qui_larg = form_palpite.cleaned_data["palp_quinLarg"] vencedor = form_palpite.cleaned_data["palp_vencedor"] seg_lug = form_palpite.cleaned_data["palp_vegLug"] ter_lug = form_palpite.cleaned_data["palp_tercLug"] qua_lug = form_palpite.cleaned_data["palp_quaLug"] qui_lug = form_palpite.cleaned_data["palp_quinLug"] sex_lug = form_palpite.cleaned_data["palp_sexLug"] set_lug = form_palpite.cleaned_data["palp_setLug"] oit_lug = form_palpite.cleaned_data["palp_oitLug"] non_lug = form_palpite.cleaned_data["palp_nonLug"] dec_lug = form_palpite.cleaned_data["palp_decLug"] volta = form_palpite.cleaned_data["palp_volta"] comentario = form_palpite.cleaned_data["comentario"] titulo = "Palpite realizado - %s " % (gp) from_email = "*****@*****.**" to_email = request.user.email # retorna o valor do campo no form, no caso de choice field, o value do campo select # participante = request.POST.get('participante') # pole = request.POST.get('palp_pole') # seg_larg = request.POST.get('palp_seglarg') # ter_larg = request.POST.get('palp_tercLarg') # qua_larg = request.POST.get('palp_quaLarg') # qui_larg = request.POST.get('palp_quinLarg') mensagem = """ Prova: %s Participante: %s ---------------- GRID DE LARGADA ---------------- Pole Position: %s Segundo largada: %s Terceiro largada: %s Quarto largada: %s Quinto largada: %s ---------------- CORRIDA ---------------- Vencedor: %s Segundo colocado: %s Terceiro colocado: %s Quarto colocado: %s Quinto colocado: %s Sexto colocado: %s Setimo colocado: %s Oitavo colocado: %s Nono colocado: %s Decimo colocado: %s Volta rapida: %s ---------------- COMENTARIO ---------------- %s """ % ( gp, participante, pole, seg_larg, ter_larg, qua_larg, qui_larg, vencedor, seg_lug, ter_lug, qua_lug, qui_lug, sex_lug, set_lug, oit_lug, non_lug, dec_lug, volta, comentario, ) html_mensagem = """ <html> <body> <style type="text/css"> .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} .tg .tg-uhdi{font-weight:bold;background-color:#f8ff00;text-align:center;vertical-align:top} .tg .tg-9hbo{font-weight:bold;vertical-align:top} .tg .tg-yw4l{vertical-align:top} .tg .tg-39nn{font-weight:bold;background-color:#fe996b;text-align:center;vertical-align:top} .tg .tg-85yq{font-weight:bold;background-color:#ffce93;vertical-align:top} .tg .tg-1ndz{background-color:#ffce93;vertical-align:top} .tg .tg-by96{font-weight:bold;background-color:#ffffc7;vertical-align:top} .tg .tg-5fof{background-color:#ffffc7;vertical-align:top} .tg .tg-8duf{font-weight:bold;background-color:#fe0000;text-align:center;vertical-align:top} label {font-weight:bold;font-size:22px} </style> <label>%s</label><br/> <label>Participante: %s</label> <p> <table class="tg"> <tr> <td class="tg-39nn" colspan="2">GRID LARGADA</td> </tr> <tr> <td class="tg-9hbo">Pole position:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-85yq">Segundo largada:</td> <td class="tg-1ndz">%s</td> </tr> <tr> <td class="tg-9hbo">Terceiro largada:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-85yq">Quarto largada:</td> <td class="tg-1ndz">%s</td> </tr> <tr> <td class="tg-9hbo">Quinto largada</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-uhdi" colspan="2">CORRIDA</td> </tr> <tr> <td class="tg-9hbo">Vencedor:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-by96">Segundo colocado:</td> <td class="tg-5fof">%s</td> </tr> <tr> <td class="tg-9hbo">Terceiro colocado:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-by96">Quarto colocado:</td> <td class="tg-5fof">%s</td> </tr> <tr> <td class="tg-9hbo">Quinto colocado:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-by96">Sexto colocado:</td> <td class="tg-5fof">%s</td> </tr> <tr> <td class="tg-9hbo">Setimo colocado:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-by96">Oitavo colocado:</td> <td class="tg-5fof">%s</td> </tr> <tr> <td class="tg-9hbo">Nono colocado:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-by96">Decimo colocado:</td> <td class="tg-5fof">%s</td> </tr> <tr> <td class="tg-9hbo">Volta rapida:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-8duf" colspan="2">Comentario:</td> </tr> <tr> <td class="tg-yw4l" colspan="2">%s</td> </tr> </table> </body> </html> """ % ( gp, participante, pole, seg_larg, ter_larg, qua_larg, qui_larg, vencedor, seg_lug, ter_lug, qua_lug, qui_lug, sex_lug, set_lug, oit_lug, non_lug, dec_lug, volta, comentario, ) if titulo and mensagem and from_email: try: send_mail(titulo, mensagem, from_email, [to_email], html_message=html_mensagem) # send_mail(titulo, mensagem, from_email, [to_email]) #envia o e-mail em modo texto except BadHeaderError: return HttpResponse("Invalid header found.") return HttpResponseRedirect("/sucesso/") else: # In reality we'd use a form class # to get proper validation errors. return HttpResponse("Make sure all fields are entered and valid.")
def envia_email(request): form_palpite = PalpiteForm(request.POST) if form_palpite.is_valid(): participante = form_palpite.cleaned_data['participante'] gp = form_palpite.cleaned_data['id_calendarioGP'] pole = form_palpite.cleaned_data['palp_pole'] seg_larg = form_palpite.cleaned_data['palp_segLarg'] ter_larg = form_palpite.cleaned_data['palp_tercLarg'] qua_larg = form_palpite.cleaned_data['palp_quaLarg'] qui_larg = form_palpite.cleaned_data['palp_quinLarg'] vencedor = form_palpite.cleaned_data['palp_vencedor'] seg_lug = form_palpite.cleaned_data['palp_vegLug'] ter_lug = form_palpite.cleaned_data['palp_tercLug'] qua_lug = form_palpite.cleaned_data['palp_quaLug'] qui_lug = form_palpite.cleaned_data['palp_quinLug'] sex_lug = form_palpite.cleaned_data['palp_sexLug'] set_lug = form_palpite.cleaned_data['palp_setLug'] oit_lug = form_palpite.cleaned_data['palp_oitLug'] non_lug = form_palpite.cleaned_data['palp_nonLug'] dec_lug = form_palpite.cleaned_data['palp_decLug'] volta = form_palpite.cleaned_data['palp_volta'] comentario = form_palpite.cleaned_data['comentario'] titulo = 'Palpite realizado - %s ' % (gp) from_email = '*****@*****.**' to_email = request.user.email # retorna o valor do campo no form, no caso de choice field, o value do campo select # participante = request.POST.get('participante') # pole = request.POST.get('palp_pole') # seg_larg = request.POST.get('palp_seglarg') # ter_larg = request.POST.get('palp_tercLarg') # qua_larg = request.POST.get('palp_quaLarg') # qui_larg = request.POST.get('palp_quinLarg') mensagem = """ Prova: %s Participante: %s ---------------- GRID DE LARGADA ---------------- Pole Position: %s Segundo largada: %s Terceiro largada: %s Quarto largada: %s Quinto largada: %s ---------------- CORRIDA ---------------- Vencedor: %s Segundo colocado: %s Terceiro colocado: %s Quarto colocado: %s Quinto colocado: %s Sexto colocado: %s Setimo colocado: %s Oitavo colocado: %s Nono colocado: %s Decimo colocado: %s Volta rapida: %s ---------------- COMENTARIO ---------------- %s """ % (gp, participante, pole, seg_larg, ter_larg, qua_larg, qui_larg, vencedor, seg_lug, ter_lug, qua_lug, qui_lug, sex_lug, set_lug, oit_lug, non_lug, dec_lug, volta, comentario) html_mensagem = """ <html> <body> <style type="text/css"> .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} .tg .tg-uhdi{font-weight:bold;background-color:#f8ff00;text-align:center;vertical-align:top} .tg .tg-9hbo{font-weight:bold;vertical-align:top} .tg .tg-yw4l{vertical-align:top} .tg .tg-39nn{font-weight:bold;background-color:#fe996b;text-align:center;vertical-align:top} .tg .tg-85yq{font-weight:bold;background-color:#ffce93;vertical-align:top} .tg .tg-1ndz{background-color:#ffce93;vertical-align:top} .tg .tg-by96{font-weight:bold;background-color:#ffffc7;vertical-align:top} .tg .tg-5fof{background-color:#ffffc7;vertical-align:top} .tg .tg-8duf{font-weight:bold;background-color:#fe0000;text-align:center;vertical-align:top} label {font-weight:bold;font-size:22px} </style> <label>%s</label><br/> <label>Participante: %s</label> <p> <table class="tg"> <tr> <td class="tg-39nn" colspan="2">GRID LARGADA</td> </tr> <tr> <td class="tg-9hbo">Pole position:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-85yq">Segundo largada:</td> <td class="tg-1ndz">%s</td> </tr> <tr> <td class="tg-9hbo">Terceiro largada:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-85yq">Quarto largada:</td> <td class="tg-1ndz">%s</td> </tr> <tr> <td class="tg-9hbo">Quinto largada</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-uhdi" colspan="2">CORRIDA</td> </tr> <tr> <td class="tg-9hbo">Vencedor:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-by96">Segundo colocado:</td> <td class="tg-5fof">%s</td> </tr> <tr> <td class="tg-9hbo">Terceiro colocado:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-by96">Quarto colocado:</td> <td class="tg-5fof">%s</td> </tr> <tr> <td class="tg-9hbo">Quinto colocado:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-by96">Sexto colocado:</td> <td class="tg-5fof">%s</td> </tr> <tr> <td class="tg-9hbo">Setimo colocado:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-by96">Oitavo colocado:</td> <td class="tg-5fof">%s</td> </tr> <tr> <td class="tg-9hbo">Nono colocado:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-by96">Decimo colocado:</td> <td class="tg-5fof">%s</td> </tr> <tr> <td class="tg-9hbo">Volta rapida:</td> <td class="tg-yw4l">%s</td> </tr> <tr> <td class="tg-8duf" colspan="2">Comentario:</td> </tr> <tr> <td class="tg-yw4l" colspan="2">%s</td> </tr> </table> </body> </html> """ % (gp, participante, pole, seg_larg, ter_larg, qua_larg, qui_larg, vencedor, seg_lug, ter_lug, qua_lug, qui_lug, sex_lug, set_lug, oit_lug, non_lug, dec_lug, volta, comentario) if titulo and mensagem and from_email: try: send_mail(titulo, mensagem, from_email, [to_email], html_message=html_mensagem) # send_mail(titulo, mensagem, from_email, [to_email]) #envia o e-mail em modo texto except BadHeaderError: return HttpResponse('Invalid header found.') return HttpResponseRedirect('/sucesso/') else: # In reality we'd use a form class # to get proper validation errors. return HttpResponse('Make sure all fields are entered and valid.')