Browse Source

Adiciona links para deps ressucitadas

pull/2188/head
Marcio Mazza 7 years ago
parent
commit
9d55709b1c
  1. 72
      sapl/legacy/scripts/ressucita_dependencias.py

72
sapl/legacy/scripts/ressucita_dependencias.py

@ -5,6 +5,11 @@ from unipath import Path
from sapl.legacy.migracao_dados import DIR_REPO, exec_legado from sapl.legacy.migracao_dados import DIR_REPO, exec_legado
def stripsplit(ll):
return [l.split() for l in ll.strip().splitlines()]
fks_legado = ''' fks_legado = '''
autor cod_parlamentar parlamentar autor cod_parlamentar parlamentar
autor tip_autor tipo_autor autor tip_autor tipo_autor
@ -32,10 +37,30 @@ fks_legado = '''
tramitacao cod_unid_tram_dest unidade_tramitacao tramitacao cod_unid_tram_dest unidade_tramitacao
tramitacao cod_unid_tram_local unidade_tramitacao tramitacao cod_unid_tram_local unidade_tramitacao
''' '''
fks_legado = [l.split() for l in fks_legado.strip().splitlines()] fks_legado = stripsplit(fks_legado)
fks_legado = {(o, c): t for (o, c, t) in fks_legado} fks_legado = {(o, c): t for (o, c, t) in fks_legado}
urls = '''
autor /sistema/autor
cargo_comissao /sistema/comissao/cargo
legislatura /sistema/parlamentar/legislatura
materia_legislativa /materia
norma_juridica /norma
parlamentar /parlamentar
sessao_legislativa /sistema/mesa-diretora/sessao-legislativa
sessao_plenaria /sessao
status_tramitacao /sistema/materia/status-tramitacao
tipo_autor /sistema/autor/tipo
tipo_expediente /sistema/sessao-plenaria/tipo-expediente
tipo_proposicao /sistema/proposicao/tipo
tipo_resultado_votacao /sistema/sessao-plenaria/tipo-resultado-votacao
unidade_tramitacao /sistema/materia/unidade-tramitacao
registro_votacao ?????????
'''
urls = dict(stripsplit(urls))
def get_tabela_campo_valor_proposicao(fk): def get_tabela_campo_valor_proposicao(fk):
[(ind_mat_ou_doc, tip_mat_ou_doc)] = exec_legado(''' [(ind_mat_ou_doc, tip_mat_ou_doc)] = exec_legado('''
select ind_mat_ou_doc, tip_mat_ou_doc select ind_mat_ou_doc, tip_mat_ou_doc
@ -102,16 +127,17 @@ SQLS_CRIACAO = [
tip_proposicao, des_tipo_proposicao, ind_mat_ou_doc, tip_mat_ou_doc, tip_proposicao, des_tipo_proposicao, ind_mat_ou_doc, tip_mat_ou_doc,
nom_modelo, ind_excluido) nom_modelo, ind_excluido)
values ({}, "DESCONHECIDO", "M", 0, "DESCONHECIDO", 0); values ({}, "DESCONHECIDO", "M", 0, "DESCONHECIDO", 0);
''', ''', ['tipo_materia_legislativa', 0]
), ),
('tipo_resultado_votacao', ''' ('tipo_resultado_votacao', '''
insert into tipo_resultado_votacao ( insert into tipo_resultado_votacao (
tip_resultado_votacao, nom_resultado, ind_excluido) tip_resultado_votacao, nom_resultado, ind_excluido)
values ({}, "DESCONHECIDO", 0); values ({}, "DESCONHECIDO", 0);
''' ''', []
), ),
] ]
SQLS_CRIACAO = {k: dedent(v.strip()) for k, v in SQLS_CRIACAO} SQLS_CRIACAO = {k: (dedent(sql.strip()), extras)
for k, sql, extras in SQLS_CRIACAO}
def criar_sessao_legislativa(campo, valor): def criar_sessao_legislativa(campo, valor):
@ -127,35 +153,51 @@ ind_excluido) values ({}, {}, 0, "O",
'''.format(valor, num_legislatura) '''.format(valor, num_legislatura)
def get_link(tabela_alvo, valor):
return '{}/{}'.format(urls[tabela_alvo], valor)
def get_sql_desexcluir(tabela_alvo, campo, valor): def get_sql_desexcluir(tabela_alvo, campo, valor):
return 'update {} set ind_excluido = 0 where {} = {};'.format( sql = 'update {} set ind_excluido = 0 where {} = {};'.format(
tabela_alvo, campo, valor) tabela_alvo, campo, valor)
return sql, [get_link(tabela_alvo, valor)]
def get_sql_criar(tabela_alvo, campo, valor): def get_sql_criar(tabela_alvo, campo, valor):
if tabela_alvo == 'sessao_legislativa': if tabela_alvo == 'sessao_legislativa':
return criar_sessao_legislativa(campo, valor) sql = criar_sessao_legislativa(campo, valor)
else: else:
sql = SQLS_CRIACAO[tabela_alvo] sql, extras = SQLS_CRIACAO[tabela_alvo]
return sql.format(valor) sql = sql.format(valor)
links = [get_link(tabela_alvo, valor)]
for tabela_extra, valor_extra in extras:
links.insert(0, get_link(tabela_extra, valor_extra))
return sql, links
TEMPLATE_RESSUCITADOS = ''' TEMPLATE_RESSUCITADOS = '''
/* RESSUCITADOS */ /* RESSUCITADOS
{}
*/
{} {}
''' '''
def get_sqls_desexcluir_criar(desexcluir, criar): def get_sqls_desexcluir_criar(desexcluir, criar):
sqls = [get_sql(tabela_alvo, campo, valor) sqls_links = [get_sql(tabela_alvo, campo, valor)
for conjunto, get_sql in ((desexcluir, get_sql_desexcluir), for conjunto, get_sql in ((desexcluir, get_sql_desexcluir),
(criar, get_sql_criar)) (criar, get_sql_criar))
for tabela_alvo, campo, valor in conjunto] for tabela_alvo, campo, valor in conjunto]
if not sqls: if not sqls_links:
return '' return ''
else: else:
return TEMPLATE_RESSUCITADOS.format('\n'.join(sorted(sqls))) sqls, links = zip(*sqls_links)
links = [l for ll in links for l in ll] # flatten
sqls, links = ['\n'.join(sorted(s)) for s in [sqls, links]]
return TEMPLATE_RESSUCITADOS.format(links, sqls)
def print_ressucitar(): def print_ressucitar():

Loading…
Cancel
Save