Browse Source

Arruma migração de expediente em RegistroVotacao

Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br>
pull/1063/head
Luciano Almeida 8 years ago
parent
commit
808fe22d63
  1. 40
      sapl/legacy/migration.py
  2. 1
      sapl/sessao/legacy.yaml

40
sapl/legacy/migration.py

@ -28,7 +28,7 @@ from sapl.norma.models import (AssuntoNorma, NormaJuridica,
TipoVinculoNormaJuridica, NormaRelacionada)
from sapl.parlamentares.models import Parlamentar
from sapl.protocoloadm.models import Protocolo, StatusTramitacaoAdministrativo
from sapl.sessao.models import ExpedienteMateria, OrdemDia
from sapl.sessao.models import ExpedienteMateria, OrdemDia, RegistroVotacao
from sapl.settings import PROJECT_DIR
from sapl.utils import delete_texto, normalize, save_texto
@ -413,26 +413,6 @@ class DataMigrator:
if field_type == 'CharField' or field_type == 'TextField':
if value is None or value == 'None':
value = ''
if field.model._meta.label == 'sessao.RegistroVotacao' and \
field.name == 'ordem' and \
not isinstance(value, OrdemDia):
try:
new_value = ExpedienteMateria.objects.get(pk=value)
setattr(new, 'expediente', new_value)
setattr(new, field.name, None)
continue
except ObjectDoesNotExist:
msg = 'FK [%s] não encontrada para valor %s ' \
'(em %s %s)' % (
field.name, value,
field.model.__name__, label or '---')
with reversion.create_revision():
value = make_stub(field.related_model, value)
descricao = 'stub criado para entrada orfã!'
warn(msg + ' => ' + descricao)
save_relation(value, [field.name], msg, descricao,
eh_stub=True)
reversion.set_comment('Stub criado pela migração')
setattr(new, field.name, value)
elif field.model.__name__ == 'TipoAutor' and \
field.name == 'content_type':
@ -657,6 +637,23 @@ def adjust_protocolo(new, old):
new.numero = p['numero__max'] + 1
def adjust_registrovotacao(new, old):
ordem_dia = OrdemDia.objects.filter(
pk=old.cod_ordem, materia=old.cod_materia)
expediente_materia = ExpedienteMateria.objects.filter(
pk=old.cod_ordem, materia=old.cod_materia)
if ordem_dia and not expediente_materia:
new.ordem = ordem_dia[0]
if not ordem_dia and expediente_materia:
new.expediente = expediente_materia[0]
if len(ordem_dia) == len(expediente_materia):
assert 0, "ERRO: RegistroVotacao [PK %s]. OrdemDia tem %s entrada(s)"\
" e ExpedienteMateria %s entrada(s).\n Deve haver somente "\
"uma entrada de OrdemDia ou ExpedienteMateria." % (
old.pk, len(ordem_dia), len(expediente))
def adjust_tipoproposicao(new, old):
if old.ind_mat_ou_doc == 'M':
new.tipo_conteudo_related = TipoMateriaLegislativa.objects.get(
@ -754,6 +751,7 @@ AJUSTE_ANTES_SALVAR = {
Parlamentar: adjust_parlamentar,
Participacao: adjust_participacao,
Protocolo: adjust_protocolo,
RegistroVotacao: adjust_registrovotacao,
TipoProposicao: adjust_tipoproposicao,
StatusTramitacao: adjust_statustramitacao,
StatusTramitacaoAdministrativo: adjust_statustramitacaoadm,

1
sapl/sessao/legacy.yaml

@ -65,7 +65,6 @@ RegistroVotacao:
numero_votos_nao: num_votos_nao
numero_votos_sim: num_votos_sim
observacao: txt_observacao
ordem: cod_ordem
tipo_resultado_votacao: tip_resultado_votacao
VotoParlamentar (RegistroVotacaoParlamentar):

Loading…
Cancel
Save