@ -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 ,