Browse Source

Ignora autor c ref a parlamentar ou comissao faltante

pull/1496/head
Marcio Mazza 8 years ago
parent
commit
c26cb3b5fb
  1. 46
      sapl/legacy/migration.py

46
sapl/legacy/migration.py

@ -552,16 +552,16 @@ class DataMigrator:
new = model() new = model()
try: try:
self.populate_renamed_fields(new, old) self.populate_renamed_fields(new, old)
if ajuste_antes_salvar:
ajuste_antes_salvar(new, old)
save(new, old)
except ForeignKeyFaltando: except ForeignKeyFaltando:
# tentamos preencher uma FK e o ojeto relacionado não existe # tentamos preencher uma FK e o ojeto relacionado não existe
# então este é um objeo órfão: simplesmente ignoramos # então este é um objeo órfão: simplesmente ignoramos
continue continue
if ajuste_antes_salvar:
ajuste_antes_salvar(new, old)
save(new, old)
if ajuste_depois_salvar: if ajuste_depois_salvar:
ajuste_depois_salvar(new, old) ajuste_depois_salvar(new, old)
if self.data_mudada: if self.data_mudada:
with reversion.create_revision(): with reversion.create_revision():
save_relation(**self.data_mudada) save_relation(**self.data_mudada)
@ -820,32 +820,32 @@ def adjust_autor(new, old):
if old.cod_parlamentar: if old.cod_parlamentar:
try: try:
new.autor_related = Parlamentar.objects.get(pk=old.cod_parlamentar) new.autor_related = Parlamentar.objects.get(pk=old.cod_parlamentar)
except Exception: except ObjectDoesNotExist:
with reversion.create_revision(): # ignoramos o autor órfão
msg = 'Um parlamentar relacionado de PK [%s] não existia' \ raise ForeignKeyFaltando('Parlamentar inexiste para autor')
% old.cod_parlamentar else:
reversion.set_comment('Stub criado pela migração') new.nome = new.autor_related.nome_parlamentar
value = make_stub(Parlamentar, old.cod_parlamentar)
descricao = 'stub criado para entrada orfã!'
warn(msg + ' => ' + descricao)
save_relation(value, [], msg, descricao,
eh_stub=True)
new.autor_related = value
new.nome = new.autor_related.nome_parlamentar
elif old.cod_comissao: elif old.cod_comissao:
new.autor_related = Comissao.objects.get(pk=old.cod_comissao) try:
new.nome = new.autor_related.nome new.autor_related = Comissao.objects.get(pk=old.cod_comissao)
except ObjectDoesNotExist:
# ignoramos o autor órfão
raise ForeignKeyFaltando('Comissao inexiste para autor')
else:
new.nome = new.autor_related.nome
if old.col_username: if old.col_username:
if not get_user_model().objects.filter( user_model = get_user_model()
username=old.col_username).exists(): if not user_model.objects.filter(username=old.col_username).exists():
user = get_user_model()(username=old.col_username) # cria um novo ususaŕio para o autor
user = user_model(username=old.col_username)
user.set_password(12345) user.set_password(12345)
with reversion.create_revision(): with reversion.create_revision():
user.save() user.save()
reversion.set_comment('Objeto criado pela migração') reversion.set_comment(
'Usuário criado pela migração para o autor {}'.format(
old.cod_autor))
grupo_autor = Group.objects.get(name="Autor") grupo_autor = Group.objects.get(name="Autor")
user.groups.add(grupo_autor) user.groups.add(grupo_autor)

Loading…
Cancel
Save