Untitled
unknown
plain_text
3 years ago
5.1 kB
7
Indexable
from django.db.models.signals import post_save
from django.dispatch import receiver
from partidas.models import Partida
from partidas.models import Penalty
@receiver(post_save, sender=Penalty)
def set_penalty_vencedor(sender, instance, **kwargs):
time1 = instance.times.all()[0]
time2 = instance.times.all()[1]
vencedor = None
if instance.partida.ativo:
if abs(time1.gmcp - time2.gmcp) > 2 and (time1.numero_batida_gmcp == 3 and time2.numero_batida_gmcp == 3):
maior = max(time1.gmcp, time2.gmcp)
if time1.gmcp == maior:
vencedor = time1
else:
vencedor = time2
if vencedor:
partida = instance.partida
partida.vencedor = vencedor
partida.ativo = False
partida.save()
instance.vencedor = vencedor
instance.ativo = False
instance.save()
elif abs(time1.gmcp - time2.gmcp) >= 2 and (time1.numero_batida_gmcp == 4 and time2.numero_batida_gmcp == 4):
maior = max(time1.gmcp, time2.gmcp)
if time1.gmcp == maior:
vencedor = time1
else:
vencedor = time2
if vencedor:
partida = instance.partida
partida.vencedor = vencedor
partida.ativo = False
partida.save()
instance.vencedor = vencedor
instance.ativo = False
instance.save()
elif abs(time1.gmcp - time2.gmcp) >= 2 and (time1.numero_batida_gmcp == 4 or time2.numero_batida_gmcp == 4):
if abs(time1.numero_batida_gmcp - instance.qtd_batidas) == 2:
if (time1.gmcp + 2) < time2.gmcp:
vencedor = time2
elif abs(time1.numero_batida_gmcp - instance.qtd_batidas) == 1:
if (time1.gmcp + 1) < time2.gmcp:
vencedor = time2
elif abs(time2.numero_batida_gmcp - instance.qtd_batidas) == 2:
if (time2.gmcp + 2) < time1.gmcp:
vencedor = time1
elif abs(time2.numero_batida_gmcp - instance.qtd_batidas) == 1:
if (time2.gmcp + 1) < time1.gmcp:
vencedor = time1
if vencedor:
partida = instance.partida
partida.vencedor = vencedor
partida.ativo = False
partida.save()
instance.vencedor = vencedor
instance.ativo = False
instance.save()
elif abs(time1.gmcp - time2.gmcp) >= 1 and (time1.numero_batida_gmcp == 5 and time2.numero_batida_gmcp == 5):
maior = max(time1.gmcp, time2.gmcp)
if time1.gmcp == maior:
vencedor = time1
else:
vencedor = time2
if vencedor:
partida = instance.partida
partida.vencedor = vencedor
partida.ativo = False
partida.save()
instance.vencedor = vencedor
instance.ativo = False
instance.save()
elif abs(time1.gmcp - time2.gmcp) >= 1 and (time1.numero_batida_gmcp == 5 or time2.numero_batida_gmcp == 5):
if abs(time1.numero_batida_gmcp - instance.qtd_batidas) == 1:
if (time1.gmcp + 1) < time2.gmcp:
vencedor = time2
elif abs(time1.numero_batida_gmcp - instance.qtd_batidas) == 0:
if time1.gmcp < time2.gmcp:
vencedor = time2
elif abs(time2.numero_batida_gmcp - instance.qtd_batidas) == 1:
if (time2.gmcp + 1) < time1.gmcp:
vencedor = time1
elif abs(time2.numero_batida_gmcp - instance.qtd_batidas) == 0:
if time2.gmcp < time1.gmcp:
vencedor = time1
if vencedor:
partida = instance.partida
partida.vencedor = vencedor
partida.ativo = False
partida.save()
instance.vencedor = vencedor
instance.ativo = False
instance.save()
elif abs(time1.gmcp - time2.gmcp) >= 0 and (time1.numero_batida_gmcp > 4 and time2.numero_batida_gmcp > 4):
if not instance.cobranca_alternada:
instance.cobranca_alternada = True
instance.save()
else:
if abs(time1.gmcp - time2.gmcp) > 0 and time1.numero_batida_gmcp == time2.numero_batida_gmcp:
if time1.gmcp > time2.gmcp:
vencedor = time1
elif time2.gmcp > time1.gmcp:
vencedor = time2
if vencedor:
partida = instance.partida
partida.vencedor = vencedor
partida.ativo = False
partida.save()
instance.vencedor = vencedor
instance.ativo = False
instance.save()
Editor is loading...