Browse Source

Desconsidera propagações de exclusão ao ressucitar deps

pull/2188/head
Marcio Mazza 7 years ago
parent
commit
8004c93a49
  1. 43
      sapl/legacy/scripts/ressucita_dependencias.py

43
sapl/legacy/scripts/ressucita_dependencias.py

@ -4,7 +4,8 @@ import texttable
import yaml
from unipath import Path
from sapl.legacy.migracao_dados import DIR_REPO, exec_legado
from sapl.legacy.migracao_dados import (DIR_REPO, PROPAGACOES_DE_EXCLUSAO,
exec_legado)
def stripsplit(ll):
@ -15,9 +16,6 @@ fks_legado = '''
autor cod_parlamentar parlamentar
autor tip_autor tipo_autor
autoria cod_autor autor
expediente_materia cod_materia materia_legislativa
ordem_dia cod_materia materia_legislativa
legislacao_citada cod_norma norma_juridica
oradores cod_parlamentar parlamentar
oradores_expediente cod_parlamentar parlamentar
ordem_dia_presenca cod_parlamentar parlamentar
@ -29,7 +27,6 @@ fks_legado = '''
sessao_plenaria_presenca cod_parlamentar parlamentar
composicao_comissao cod_cargo cargo_comissao
sessao_plenaria cod_sessao_leg sessao_legislativa
ordem_dia cod_sessao_plen sessao_plenaria
proposicao cod_materia materia_legislativa
proposicao cod_autor autor
tramitacao cod_status status_tramitacao
@ -47,6 +44,9 @@ fks_legado = '''
sessao_plenaria tip_sessao tipo_sessao_plenaria
mesa_sessao_plenaria cod_cargo cargo_mesa
norma_juridica tip_norma tipo_norma_juridica
materia_legislativa tip_id_basica tipo_materia_legislativa
despacho_inicial cod_comissao comissao
relatoria cod_comissao comissao
'''
fks_legado = stripsplit(fks_legado)
fks_legado = {(o, c): t for (o, c, t) in fks_legado}
@ -74,6 +74,7 @@ cargo_mesa /sistema/mesa-diretora/cargo-mesa
documento_administrativo /docadm
tipo_materia_legislativa /sistema/materia/tipo
tipo_norma_juridica /sistema/norma/tipo
comissao /comissao
registro_votacao ?????????
'''
urls = dict(stripsplit(urls))
@ -94,6 +95,7 @@ def get_tabela_campo_tipo_proposicao(tip_proposicao):
CAMPOS_ORIGEM_PARA_ALVO = {
'cod_unid_tram_dest': 'cod_unid_tramitacao',
'cod_unid_tram_local': 'cod_unid_tramitacao',
'tip_id_basica': 'tip_materia',
}
@ -168,8 +170,10 @@ def get_apaga_materias_de_proposicoes(fks, slug):
links = '\n'.join([get_link_proposicao(p, slug)
for p in cods_proposicoes])
sqls = '\n'.join(sqls)
return '''
if not sqls:
return ''
else:
return '''
/* REFERÊNCIAS A MATÉRIAS APAGADAS DE PROPOSIÇÕES
ATENÇÃO
@ -208,8 +212,11 @@ def get_dependencias_a_ressucitar(slug):
print(get_apaga_materias_de_proposicoes(proposicoes_para_materia, slug))
propagacoes = {(o, c) for t, o, c in PROPAGACOES_DE_EXCLUSAO}
fks_faltando = [fk for fk in fks_faltando
if fk not in proposicoes_para_materia]
if fk not in proposicoes_para_materia
and (fk['tabela'], fk['campo']) not in propagacoes]
excluidos = [get_excluido(fk) for fk in fks_faltando]
desexcluir, criar = [
@ -246,7 +253,11 @@ SQLS_CRIACAO = [
('tipo_autor', '''
insert into tipo_autor (tip_autor, des_tipo_autor, ind_excluido)
values ({}, "DESCONHECIDO", 0);
''')
'''),
('unidade_tramitacao', '''
insert into unidade_tramitacao (cod_unid_tramitacao, cod_comissao, cod_orgao, cod_parlamentar, ind_excluido)
values ({}, NULL, NULL, NULL, 0);
'''),
]
SQLS_CRIACAO = {k: (dedent(sql.strip()), extras)
for k, sql, *extras in SQLS_CRIACAO}
@ -291,8 +302,18 @@ def get_sql_criar(tabela_alvo, campo, valor, slug):
TEMPLATE_RESSUCITADOS = '''
/* RESSUCITADOS
SOBRE REGISTROS QUE ESTAVAM APAGADOS E FORAM RESTAURADOS
Os registros que listamos a seguir estavam excluídos (ou simplesmente não existiam) no sistema antigo e precisaram ser restaurados (ou criados) para completarmos a migração. Foi necessário fazer isso pois outros registros ativos no sistema apontam para eles.
Vocês agora podem decidir mantê-los, ajustá-los ou excluí-los. Segue a lista:
{}
Se a opção for por excluir um desses registros novamente, note que será possível fazer isso quando nada mais no sistema fizer referência a ele.
Ao tentar excluir um registro usado em outras partes do sistema, você verá uma lista dos itens que apontam para ele de alguma forma. Para conseguir excluir você deve editar cada dos dos itens dependentes lista mostrada, retirando ou trocando a referência ao que deseja excluir.
*/
{}
@ -300,11 +321,11 @@ TEMPLATE_RESSUCITADOS = '''
def get_url(slug):
return 'sapl.{}.leg.br'.format(slug.replace('-', '.'))
return 'sapl31.{}.leg.br'.format(slug.replace('-', '.'))
def get_sqls_desexcluir_criar(desexcluir, criar, slug):
sqls_links = [get_sql(*(args + [slug]))
sqls_links = [get_sql(*(args + (slug,)))
for itens, get_sql in ((desexcluir, get_sql_desexcluir),
(criar, get_sql_criar))
for args in itens]

Loading…
Cancel
Save