Browse Source

Fix erro em frente, insercao de tratamento de excecoes (#3569)

Co-authored-by: joao <joao@mezzoplanejamento.com.br>
pull/3575/head
joaohortsenado 3 years ago
committed by GitHub
parent
commit
4b715cddef
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 30
      scripts/deduplica_parlamentares.py

30
scripts/deduplica_parlamentares.py

@ -16,7 +16,7 @@ models = [ComposicaoMesa, Dependente, Filiacao, IntegranteMesa, JustificativaAus
# Tratar FRENTE pois ela é 1-to-many (campo parlamentares) com Parlamentar # Tratar FRENTE pois ela é 1-to-many (campo parlamentares) com Parlamentar
models_autor = [AutoriaNorma, Autoria, Proposicao, Protocolo, DocumentoAdministrativo] models_autor = [AutoriaNorma, Autoria, Frente, Proposicao, Protocolo, DocumentoAdministrativo]
## Verificar se TipoAutor é sempre 1 para parlamentar e ContentType é sempre 26 para parlamentar. ## Verificar se TipoAutor é sempre 1 para parlamentar e ContentType é sempre 26 para parlamentar.
TIPO_PARLAMENTAR = 1 TIPO_PARLAMENTAR = 1
@ -45,32 +45,36 @@ def deduplica_parlamentares(parlamentares):
object_id=parlamentar_principal.id) object_id=parlamentar_principal.id)
for a in Autor.objects.filter(tipo_id=TIPO_PARLAMENTAR, content_type_id=CONTENT_TYPE_PARLAMENTAR, object_id=clone.id): for a in Autor.objects.filter(tipo_id=TIPO_PARLAMENTAR, content_type_id=CONTENT_TYPE_PARLAMENTAR, object_id=clone.id):
print(a)
if not autor_principal: if not autor_principal:
print('Ajustando autor de %s' % parlamentar) print('Ajustando autor de %s' % parlamentar)
a.object_id = parlamentar_principal.id a.object_id = parlamentar_principal.id
a.save() try:
a.save()
except Exception as e:
print(f"Erro ao mover referencia de autor do model {ma} para {autor_principal[0]}")
print(e)
else: else:
print('Movendo referencias de autor') print('Movendo referencias de autor')
for ma in models_autor: for ma in models_autor:
for ra in ma.objects.filter(autor=a): for ra in ma.objects.filter(autor=a):
ra.autor = autor_principal[0] ra.autor = autor_principal[0]
ra.save() try:
ra.save()
except Exception as e:
print(f"Erro ao mover referencia de autor do model {ma} para {autor_principal[0]}")
print(e)
a.delete() a.delete()
# Muda apontamento de models que referenciam parlamentar # Muda apontamento de models que referenciam parlamentar
for model in models: for model in models:
print(f"Mudando apontamento de model {model}...")
for obj in model.objects.filter(parlamentar_id=clone.id): for obj in model.objects.filter(parlamentar_id=clone.id):
obj.parlamentar = parlamentar_principal obj.parlamentar = parlamentar_principal
obj.save() try:
obj.save()
frentes = Frente.objects.filter(parlamentares=parlamentar_principal) except Exception as e:
for frente in Frente.objects.select_related.filter(parlamentares=clone): print(f"Erro ao alterar parlamentar do model {model} para a instancia {obj}")
if frente not in frentes: print(e)
frente.parlamentares.add(parlamentar_principal)
frente.parlamentares.remove(clone)
clone.delete() clone.delete()

Loading…
Cancel
Save