Browse Source

Ignora ja_migrados ao migrar assuntos de norma

migracao
Marcio Mazza 6 years ago
parent
commit
9fe89e93fb
  1. 23
      sapl/legacy/migracao_dados.py

23
sapl/legacy/migracao_dados.py

@ -1348,20 +1348,31 @@ def adjust_normajuridica_depois_salvar():
for model in [AssuntoNorma, NormaJuridica]]
def filtra_assuntos_migrados(cod_assunto):
"""cod_assunto é uma string com cods separados por vírgulas
p. ex.: 1,2,3,99
"""
if not cod_assunto:
return []
cods = {int(a) for a in cod_assunto.split(',') if a}
return sorted(cods.intersection(assuntos_migrados))
norma_para_assuntos = [
(norma, filtra_assuntos_migrados(cod_assunto))
for norma, cod_assunto in OldNormaJuridica.objects.filter(
pk__in=normas_migradas).values_list('pk', 'cod_assunto')]
old_normajurica_cod_assuntos = OldNormaJuridica.objects.filter(
pk__in=normas_migradas).values_list('pk', 'cod_assunto')
ja_migrados = set(ligacao.objects.values_list(
'normajuridica_id', 'assuntonorma_id'))
normas_assuntos = [
(norma, assunto)
for norma, cod_assunto in old_normajurica_cod_assuntos
for assunto in filtra_assuntos_migrados(cod_assunto)
if (norma, assunto) not in ja_migrados
]
assert not Version.objects.get_deleted(AssuntoNorma)
ligacao.objects.bulk_create(
ligacao(normajuridica_id=norma, assuntonorma_id=assunto)
for norma, assuntos in norma_para_assuntos
for assunto in assuntos)
for norma, assunto in normas_assuntos)
def adjust_autor(new, old):

Loading…
Cancel
Save