Browse Source

Refatora adjuste de norma

pull/1847/head
Marcio Mazza 7 years ago
parent
commit
ab56ccd194
  1. 26
      sapl/legacy/migracao_dados.py

26
sapl/legacy/migracao_dados.py

@ -23,6 +23,7 @@ from unipath import Path
from sapl.base.models import AppConfig as AppConf
from sapl.base.models import Autor, TipoAutor, cria_models_tipo_autor
from sapl.comissoes.models import Comissao, Composicao, Participacao
from sapl.legacy.models import NormaJuridica as OldNormaJuridica
from sapl.legacy.models import TipoNumeracaoProtocolo
from sapl.materia.models import (AcompanhamentoMateria, Proposicao,
StatusTramitacao, TipoDocumento,
@ -1072,22 +1073,23 @@ def adjust_normajuridica_depois_salvar():
# Ajusta relação M2M
ligacao = NormaJuridica.assuntos.through
def gen_ligacoes():
from sapl.legacy.models import NormaJuridica as OldNormaJuridica
assuntos_migrados, normas_migradas = [
set(model.objects.values_list('id', flat=True))
for model in [AssuntoNorma, NormaJuridica]]
assuntos_migrados, normas_migradas = [
set(model.objects.values_list('id', flat=True))
for model in [AssuntoNorma, NormaJuridica]]
def filtra_assuntos_migrados(cod_assunto):
return [a for a in map(int, cod_assunto.split(','))
if a in 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'):
pk__in=normas_migradas).values_list('pk', 'cod_assunto')]
assuntos = [a for a in map(int, cod_assunto.split(','))
if a in assuntos_migrados]
for assunto in assuntos:
yield ligacao(normajuridica_id=norma, assuntonorma_id=assunto)
ligacao.objects.bulk_create(gen_ligacoes())
ligacao.objects.bulk_create(
ligacao(normajuridica_id=norma, assuntonorma_id=assunto)
for norma, assuntos in norma_para_assuntos
for assunto in assuntos)
def vincula_autor(new, old, model_relacionado, campo_relacionado, campo_nome):

Loading…
Cancel
Save