Browse Source

Ajusta migração de ComposicaoMesa p incluir MesaDiretora

migracao
Marcio Mazza 2 years ago
parent
commit
c0fccc93f9
  1. 69
      sapl/legacy/migracao_dados.py
  2. 1
      sapl/parlamentares/legacy.yaml

69
sapl/legacy/migracao_dados.py

@ -60,10 +60,13 @@ from sapl.norma.models import (
TipoVinculoNormaJuridica, TipoVinculoNormaJuridica,
) )
from sapl.parlamentares.models import ( from sapl.parlamentares.models import (
ComposicaoMesa,
Legislatura, Legislatura,
Mandato, Mandato,
MesaDiretora,
Parlamentar, Parlamentar,
Partido, Partido,
SessaoLegislativa,
TipoAfastamento, TipoAfastamento,
) )
from sapl.protocoloadm.models import ( from sapl.protocoloadm.models import (
@ -1264,22 +1267,36 @@ def migrar_model(model, apagar_do_legado):
else: else:
campos_chave = campos_pk_legado campos_chave = campos_pk_legado
apagados_pelo_usuario = Version.objects.get_deleted(model) # ----------------------------------------------------------------------
apagados_pelo_usuario = [ # HACK:
{k: v for k, v in get_campos_crus_reversion(version).items()} #
for version in apagados_pelo_usuario # Após a refatoração que introduziu parlamentares.models.MesaDiretora
] # este código parou de funcionar.
campos_chave_novos = {campos_velhos_p_novos[c] for c in campos_chave} #
apagados_pelo_usuario = [ # Ele não é necessário em uma migração de primeira primeira vez.
{k: v for k, v in apagado.items() if k in campos_chave_novos} #
for apagado in apagados_pelo_usuario # Certamente não acontecerá mais nenhuma migração incremental,
] # logo podemos desativá-lo
# ----------------------------------------------------------------------
#
# apagados_pelo_usuario = Version.objects.get_deleted(model)
# apagados_pelo_usuario = [
# {k: v for k, v in get_campos_crus_reversion(version).items()}
# for version in apagados_pelo_usuario
# ]
# campos_chave_novos = {campos_velhos_p_novos[c] for c in campos_chave}
# apagados_pelo_usuario = [
# {k: v for k, v in apagado.items() if k in campos_chave_novos}
# for apagado in apagados_pelo_usuario
# ]
#
# def ja_esta_migrado(old):
# chave = {campos_velhos_p_novos[c]: getattr(old, c) for c in campos_chave}
# return (
# chave in apagados_pelo_usuario or model.objects.filter(**chave).exists()
# )
def ja_esta_migrado(old): def ja_esta_migrado(old):
chave = {campos_velhos_p_novos[c]: getattr(old, c) for c in campos_chave} return False
return (
chave in apagados_pelo_usuario or model.objects.filter(**chave).exists()
)
ultima_pk_legado = model_legado.objects.count() ultima_pk_legado = model_legado.objects.count()
@ -1741,6 +1758,27 @@ def adjust_reuniao_comissao(new, old):
new.hora_inicio = str_to_time(old.hr_inicio_reuniao) new.hora_inicio = str_to_time(old.hr_inicio_reuniao)
def get_mesa_diretora(cod_sessao_leg):
sessao_legislativa = SessaoLegislativa.objects.get(pk=cod_sessao_leg)
try:
mesa = MesaDiretora.objects.get(sessao_legislativa=sessao_legislativa)
except MesaDiretora.DoesNotExist:
with reversion.create_revision():
# cria uma mesa diretora vazia única para a sessão legislativa
# baseado em sapl/parlamentares/migrations/0037_atribuiMesaDiretora.py
mesa = MesaDiretora.objects.create(
data_inicio=sessao_legislativa.data_inicio,
data_fim=sessao_legislativa.data_fim,
sessao_legislativa=sessao_legislativa,
)
reversion.set_comment("Mesa criada pela migração")
return mesa
def adjust_composicao_mesa(new: ComposicaoMesa, old):
new.mesa_diretora = get_mesa_diretora(old.cod_sessao_leg)
def remove_style(conteudo): def remove_style(conteudo):
if "style" not in conteudo: if "style" not in conteudo:
return conteudo # atalho que acelera muito os casos sem style return conteudo # atalho que acelera muito os casos sem style
@ -1779,6 +1817,7 @@ AJUSTE_ANTES_SALVAR = {
TipoResultadoVotacao: adjust_tiporesultadovotacao, TipoResultadoVotacao: adjust_tiporesultadovotacao,
ExpedienteSessao: adjust_expediente_sessao, ExpedienteSessao: adjust_expediente_sessao,
Reuniao: adjust_reuniao_comissao, Reuniao: adjust_reuniao_comissao,
ComposicaoMesa: adjust_composicao_mesa,
} }
AJUSTE_DEPOIS_SALVAR = {NormaJuridica: adjust_normajuridica_depois_salvar} AJUSTE_DEPOIS_SALVAR = {NormaJuridica: adjust_normajuridica_depois_salvar}

1
sapl/parlamentares/legacy.yaml

@ -98,4 +98,3 @@ CargoMesa:
ComposicaoMesa: ComposicaoMesa:
cargo: cod_cargo cargo: cod_cargo
parlamentar: cod_parlamentar parlamentar: cod_parlamentar
sessao_legislativa: cod_sessao_leg

Loading…
Cancel
Save