Untitled

 avatar
unknown
plain_text
2 years ago
5.1 kB
4
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...