From 7900e6e2f8ac7a5f46228f84271eff0db03f5271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Cantu=C3=A1ria?= Date: Thu, 4 Apr 2019 12:12:54 -0300 Subject: [PATCH] =?UTF-8?q?Corrige=20transf=C3=AArencia=20e=20exclu=C3=A7?= =?UTF-8?q?=C3=A3o=20de=20clones=20parlamentares?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/remove_multiplos_parlamentares.py | 27 ++++++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/scripts/remove_multiplos_parlamentares.py b/scripts/remove_multiplos_parlamentares.py index 3919a9fda..1784fe121 100644 --- a/scripts/remove_multiplos_parlamentares.py +++ b/scripts/remove_multiplos_parlamentares.py @@ -1,5 +1,7 @@ import re +from django.core.exceptions import ObjectDoesNotExist + from sapl.base.models import Autor from sapl.comissoes.models import Participacao from sapl.materia.models import Relatoria, UnidadeTramitacao, Autoria @@ -78,17 +80,30 @@ def transfer_purge_congressman(congressman_lists): for congressman_list in congressman_lists: parlamentar_principal = Parlamentar.objects.get(pk=congressman_list[0]) for pk in congressman_list[1:]: + parlamentar_clonado = Parlamentar.objects.get(pk=pk) + if parlamentar_clonado.biografia: + parlamentar_principal += f'\n\n------------------------\n\n{parlamentar_clonado.biografia}' + for model in models: for obj in model.objects.filter(parlamentar_id=pk): # TODO: Validar objeto para não repeti-lo no parlamentar principal obj.parlamentar_id = congressman_list[0] obj.save() - parlamentar_clonado = Parlamentar.objects.get(pk=pk) - for autoria in Autoria.objects.filter(autor=parlamentar_clonado.id): - autoria.autor = parlamentar_principal.id - autoria.save() - # import ipdb; ipdb.set_trace() - # autor.save() + + # TODO: Transferir para função de autor + try: + autor_principal = Autor.objects.get(parlamentar_set=parlamentar_principal) + autor_clonado = Autor.objects.get(parlamentar_set=parlamentar_clonado) + for autoria in Autoria.objects.filter(autor=autor_clonado): + autoria.autor = autor_principal + autoria.save() + except ObjectDoesNotExist: + try: + autor_clonado = Autor.objects.get(parlamentar_set=parlamentar_clonado) + autor_clonado.parlamentar_set = parlamentar_principal + except ObjectDoesNotExist: + pass + parlamentar_clonado.delete()