Browse Source

Corrige transfêrencia e exclução de clones parlamentares

pull/2626/head
Vinícius Cantuária 7 years ago
parent
commit
7900e6e2f8
  1. 27
      scripts/remove_multiplos_parlamentares.py

27
scripts/remove_multiplos_parlamentares.py

@ -1,5 +1,7 @@
import re import re
from django.core.exceptions import ObjectDoesNotExist
from sapl.base.models import Autor from sapl.base.models import Autor
from sapl.comissoes.models import Participacao from sapl.comissoes.models import Participacao
from sapl.materia.models import Relatoria, UnidadeTramitacao, Autoria from sapl.materia.models import Relatoria, UnidadeTramitacao, Autoria
@ -78,17 +80,30 @@ def transfer_purge_congressman(congressman_lists):
for congressman_list in congressman_lists: for congressman_list in congressman_lists:
parlamentar_principal = Parlamentar.objects.get(pk=congressman_list[0]) parlamentar_principal = Parlamentar.objects.get(pk=congressman_list[0])
for pk in congressman_list[1:]: 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 model in models:
for obj in model.objects.filter(parlamentar_id=pk): for obj in model.objects.filter(parlamentar_id=pk):
# TODO: Validar objeto para não repeti-lo no parlamentar principal # TODO: Validar objeto para não repeti-lo no parlamentar principal
obj.parlamentar_id = congressman_list[0] obj.parlamentar_id = congressman_list[0]
obj.save() obj.save()
parlamentar_clonado = Parlamentar.objects.get(pk=pk)
for autoria in Autoria.objects.filter(autor=parlamentar_clonado.id): # TODO: Transferir para função de autor
autoria.autor = parlamentar_principal.id try:
autoria.save() autor_principal = Autor.objects.get(parlamentar_set=parlamentar_principal)
# import ipdb; ipdb.set_trace() autor_clonado = Autor.objects.get(parlamentar_set=parlamentar_clonado)
# autor.save() 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() parlamentar_clonado.delete()

Loading…
Cancel
Save