mirror of https://github.com/interlegis/sapl.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.8 KiB
84 lines
2.8 KiB
from django.core.exceptions import ObjectDoesNotExist
|
|
from django.db.models import Count
|
|
from sapl.base.models import Autor
|
|
from sapl.parlamentares.models import Parlamentar
|
|
|
|
|
|
def pega_autores():
|
|
return [[autor for autor in Autor.objects.filter(nome=nome)]
|
|
for nome in Autor.objects.values_list('nome', flat=True).annotate(qntd=Count('nome')).filter(qntd__gt=1)]
|
|
|
|
|
|
def pega_parlamentares_autores():
|
|
parlamentares = [[parlamentar for parlamentar in Parlamentar.objects.filter(nome_parlamentar=nome_parlamentar)]
|
|
for nome_parlamentar in Parlamentar.objects.values_list('nome_parlamentar', flat=True)
|
|
.annotate(qntd=Count('nome_parlamentar')).filter(qntd__gt=1)]
|
|
|
|
parlamentares_autores = []
|
|
|
|
for parlamentar in parlamentares:
|
|
parlamentar_autor = []
|
|
for clone in parlamentar[1:]:
|
|
try:
|
|
autor_principal = Autor.objects.get(parlamentar_set=parlamentar[0])
|
|
except ObjectDoesNotExist:
|
|
try:
|
|
autor_clonado = Autor.objects.get(parlamentar_set=clone)
|
|
except ObjectDoesNotExist:
|
|
pass
|
|
else:
|
|
autor_clonado.object_id = parlamentar[0].id
|
|
autor_clonado.save()
|
|
parlamentares_autores.append(autor_clonado)
|
|
else:
|
|
if len(parlamentar_autor) == 0:
|
|
parlamentar_autor.append(autor_principal)
|
|
|
|
try:
|
|
autor_clonado = Autor.objects.get(parlamentar_set=clone)
|
|
except ObjectDoesNotExist:
|
|
pass
|
|
else:
|
|
parlamentar_autor.append(autor_clonado)
|
|
parlamentares_autores.extend(parlamentar_autor)
|
|
|
|
return parlamentares_autores
|
|
|
|
|
|
def transfere_valores(autores):
|
|
for autor in autores:
|
|
for clone in autor[1:]:
|
|
for autoria in clone.autoria_set.all():
|
|
autoria.autor_id = autor[0]
|
|
autoria.save()
|
|
|
|
for proposicao in clone.proposicao_set.all():
|
|
proposicao.autor_id = autor[0]
|
|
proposicao.save()
|
|
|
|
for autorianorma in clone.autorianorma_set.all():
|
|
autorianorma.autor_id = autor[0]
|
|
autorianorma.save()
|
|
|
|
for documentoadministrativo in clone.documentoadministrativo_set.all():
|
|
documentoadministrativo.autor_id = autor[0]
|
|
documentoadministrativo.save()
|
|
|
|
for protocolo in clone.protocolo_set.all():
|
|
protocolo.autor_id = autor[0]
|
|
protocolo.save()
|
|
|
|
clone.delete()
|
|
|
|
|
|
def main():
|
|
autores = pega_autores()
|
|
parlamentares_autores = pega_parlamentares_autores()
|
|
|
|
autores.append(parlamentares_autores)
|
|
|
|
transfere_valores(autores)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|