Browse Source

Merge pull request #1063 from interlegis/1052-RegistroVotacao-ordem-expediente

fix #1052 - Arruma migração de expediente em RegistroVotacao
pull/1088/head
Luciano Henrique Nunes de Almeida 8 years ago
committed by GitHub
parent
commit
ffac0bc598
  1. 49
      sapl/legacy/migration.py
  2. 1
      sapl/sessao/legacy.yaml

49
sapl/legacy/migration.py

@ -28,7 +28,7 @@ from sapl.norma.models import (AssuntoNorma, NormaJuridica,
TipoVinculoNormaJuridica, NormaRelacionada) 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, RegistroVotacao
from sapl.settings import PROJECT_DIR from sapl.settings import PROJECT_DIR
from sapl.utils import delete_texto, normalize, save_texto from sapl.utils import delete_texto, normalize, save_texto
@ -411,26 +411,6 @@ class DataMigrator:
if field_type == 'CharField' or field_type == 'TextField': if field_type == 'CharField' or field_type == 'TextField':
if value is None or value == 'None': if value is None or value == 'None':
value = '' 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) setattr(new, field.name, value)
elif field.model.__name__ == 'TipoAutor' and \ elif field.model.__name__ == 'TipoAutor' and \
field.name == 'content_type': field.name == 'content_type':
@ -655,6 +635,31 @@ def adjust_protocolo(new, old):
new.numero = p['numero__max'] + 1 new.numero = p['numero__max'] + 1
def adjust_registrovotacao_antes_salvar(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]
def adjust_registrovotacao_depois_salvar(new, old):
if not new.ordem and not new.expediente:
with reversion.create_revision():
problema = 'RegistroVotacao de PK %s não possui nenhuma OrdemDia'\
' ou ExpedienteMateria.' % old.pk
descricao = 'RevistroVotacao deve ter no mínimo uma ordem do dia'\
' ou expediente vinculado.'
warn(problema + ' => ' + descricao)
save_relation(obj=new, problema=problema,
descricao=descricao, eh_stub=False)
reversion.set_comment('RegistroVotacao sem ordem ou expediente')
def adjust_tipoproposicao(new, old): def adjust_tipoproposicao(new, old):
if old.ind_mat_ou_doc == 'M': if old.ind_mat_ou_doc == 'M':
new.tipo_conteudo_related = TipoMateriaLegislativa.objects.get( new.tipo_conteudo_related = TipoMateriaLegislativa.objects.get(
@ -752,6 +757,7 @@ AJUSTE_ANTES_SALVAR = {
Parlamentar: adjust_parlamentar, Parlamentar: adjust_parlamentar,
Participacao: adjust_participacao, Participacao: adjust_participacao,
Protocolo: adjust_protocolo, Protocolo: adjust_protocolo,
RegistroVotacao: adjust_registrovotacao_antes_salvar,
TipoProposicao: adjust_tipoproposicao, TipoProposicao: adjust_tipoproposicao,
StatusTramitacao: adjust_statustramitacao, StatusTramitacao: adjust_statustramitacao,
StatusTramitacaoAdministrativo: adjust_statustramitacaoadm, StatusTramitacaoAdministrativo: adjust_statustramitacaoadm,
@ -761,6 +767,7 @@ AJUSTE_ANTES_SALVAR = {
AJUSTE_DEPOIS_SALVAR = { AJUSTE_DEPOIS_SALVAR = {
NormaJuridica: adjust_normajuridica_depois_salvar, NormaJuridica: adjust_normajuridica_depois_salvar,
Protocolo: adjust_protocolo_depois_salvar, Protocolo: adjust_protocolo_depois_salvar,
RegistroVotacao: adjust_registrovotacao_depois_salvar,
} }
# CHECKS #################################################################### # CHECKS ####################################################################

1
sapl/sessao/legacy.yaml

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

Loading…
Cancel
Save