Browse Source

fix #832 - TipoVinculoNormaJuridica e NormaRelacionada (#1016)

* Migra TipoVinculoNormaJuridica e arruma NormaRelacionada

Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br>

* Concerta alter sequence e assert no tipo vinculo da norma

Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br>
pull/802/merge
Luciano Henrique Nunes de Almeida 8 years ago
committed by Edward
parent
commit
2538e6da5c
  1. 56
      sapl/legacy/migration.py
  2. 8
      sapl/norma/legacy.yaml

56
sapl/legacy/migration.py

@ -25,7 +25,7 @@ from sapl.materia.models import (DocumentoAcessorio, MateriaLegislativa,
TipoMateriaLegislativa, TipoProposicao, TipoMateriaLegislativa, TipoProposicao,
Tramitacao) Tramitacao)
from sapl.norma.models import (AssuntoNorma, NormaJuridica, from sapl.norma.models import (AssuntoNorma, NormaJuridica,
TipoVinculoNormaJuridica) TipoVinculoNormaJuridica, NormaRelacionada)
from sapl.parlamentares.models import Parlamentar from sapl.parlamentares.models import Parlamentar
from sapl.protocoloadm.models import Protocolo, StatusTramitacaoAdministrativo from sapl.protocoloadm.models import Protocolo, StatusTramitacaoAdministrativo
from sapl.sessao.models import ExpedienteMateria, OrdemDia from sapl.sessao.models import ExpedienteMateria, OrdemDia
@ -339,20 +339,34 @@ def get_fields_dict(model):
def fill_vinculo_norma_juridica(): def fill_vinculo_norma_juridica():
lista = [('A', 'Altera a norma'), lista = [('A', 'Altera o(a)',
('R', 'Revoga integralmente a norma'), 'Alterado(a) pelo(a)'),
('P', 'Revoga parcialmente a norma'), ('R', 'Revoga integralmente o(a)',
('T', 'Revoga integralmente por consolidação'), 'Revogado(a) integralmente pelo(a)'),
('C', 'Norma Correlata'), ('P', 'Revoga parcialmente o(a)',
('S', 'Ressalva a Norma'), 'Revogado(a) parcialmente pelo(a)'),
('E', 'Reedita a Norma'), ('T', 'Revoga integralmente por consolidação',
('I', 'Reedita a Norma com Alteração'), 'Revogado(a) integralmente por consolidação'),
('G', 'Regulamenta a Norma'), ('C', 'Norma correlata',
('K', 'Suspende parcialmente a norma'), 'Norma correlata'),
('L', 'Suspende integralmente a norma'), ('S', 'Ressalva o(a)',
('N', 'Julgada integralmente inconstitucional'), 'Ressalvada pelo(a)'),
('O', 'Julgada parcialmente inconstitucional')] ('E', 'Reedita o(a)',
lista_objs = [TipoVinculoNormaJuridica(sigla=item[0], descricao=item[1]) 'Reeditada pelo(a)'),
('I', 'Reedita com alteração o(a)',
'Reeditada com alteração pelo(a)'),
('G', 'Regulamenta o(a)',
'Regulamentada pelo(a)'),
('K', 'Suspende parcialmente o(a)',
'Suspenso(a) parcialmente pelo(a)'),
('L', 'Suspende integralmente o(a)',
'Suspenso(a) integralmente pelo(a)'),
('N', 'Julga integralmente inconstitucional',
'Julgada integralmente inconstitucional'),
('O', 'Julga parcialmente inconstitucional',
'Julgada parcialmente inconstitucional')]
lista_objs = [TipoVinculoNormaJuridica(
sigla=item[0], descricao_ativa=item[1], descricao_passiva=item[2])
for item in lista] for item in lista]
TipoVinculoNormaJuridica.objects.bulk_create(lista_objs) TipoVinculoNormaJuridica.objects.bulk_create(lista_objs)
@ -455,6 +469,7 @@ class DataMigrator:
desconecta_sinais_indexacao() desconecta_sinais_indexacao()
fill_vinculo_norma_juridica()
info('Começando migração: %s...' % obj) info('Começando migração: %s...' % obj)
self._do_migrate(obj) self._do_migrate(obj)
@ -543,6 +558,10 @@ class DataMigrator:
if getattr(old, 'ind_excluido', False): if getattr(old, 'ind_excluido', False):
self.to_delete.append(new) self.to_delete.append(new)
# necessário para ajustar sequence da tabela para o ultimo valor de id
ultimo_valor = get_last_value(model)
alter_sequence(model, ultimo_valor+1)
def delete_ind_excluido(self): def delete_ind_excluido(self):
excluidos = 0 excluidos = 0
for obj in self.to_delete: for obj in self.to_delete:
@ -619,6 +638,12 @@ def adjust_participacao(new, old):
new.composicao = composicao new.composicao = composicao
def adjust_normarelacionada(new, old):
tipo = TipoVinculoNormaJuridica.objects.filter(sigla=old.tip_vinculo)
assert len(tipo) == 1
new.tipo_vinculo = tipo[0]
def adjust_protocolo(new, old): def adjust_protocolo(new, old):
if new.numero is None and not primeira_vez: if new.numero is None and not primeira_vez:
p = ProtocoloLegado.objects.filter( p = ProtocoloLegado.objects.filter(
@ -724,6 +749,7 @@ AJUSTE_ANTES_SALVAR = {
Autor: adjust_autor, Autor: adjust_autor,
Comissao: adjust_comissao, Comissao: adjust_comissao,
NormaJuridica: adjust_normajuridica_antes_salvar, NormaJuridica: adjust_normajuridica_antes_salvar,
NormaRelacionada: adjust_normarelacionada,
OrdemDia: adjust_ordemdia, OrdemDia: adjust_ordemdia,
Parlamentar: adjust_parlamentar, Parlamentar: adjust_parlamentar,
Participacao: adjust_participacao, Participacao: adjust_participacao,

8
sapl/norma/legacy.yaml

@ -42,8 +42,6 @@ LegislacaoCitada:
subsecao: des_subsecao subsecao: des_subsecao
titulo: des_titulo titulo: des_titulo
# TODO Descomentar quando a issue #832 for concluida NormaRelacionada (VinculoNormaJuridica):
# TipoVinculoNormaJuridica (VinculoNormaJuridica): norma_principal: cod_norma_referente
# norma_referente: cod_norma_referente norma_relacionada: cod_norma_referida
# norma_referida: cod_norma_referida
# tipo_vinculo: tip_vinculo

Loading…
Cancel
Save