Browse Source

Corrige erro na exclusão de dispositivo base inicial

pull/2106/head
Leandro Roberto 7 years ago
parent
commit
468ee82ee2
  1. 57
      sapl/compilacao/views.py

57
sapl/compilacao/views.py

@ -51,7 +51,6 @@ from sapl.compilacao.utils import (DISPOSITIVO_SELECT_RELATED,
from sapl.crud.base import Crud, CrudAux, CrudListView, make_pagination from sapl.crud.base import Crud, CrudAux, CrudListView, make_pagination
from sapl.settings import BASE_DIR from sapl.settings import BASE_DIR
TipoNotaCrud = CrudAux.build(TipoNota, 'tipo_nota') TipoNotaCrud = CrudAux.build(TipoNota, 'tipo_nota')
TipoVideCrud = CrudAux.build(TipoVide, 'tipo_vide') TipoVideCrud = CrudAux.build(TipoVide, 'tipo_vide')
TipoPublicacaoCrud = CrudAux.build(TipoPublicacao, 'tipo_publicacao') TipoPublicacaoCrud = CrudAux.build(TipoPublicacao, 'tipo_publicacao')
@ -104,7 +103,7 @@ class IntegracaoTaView(TemplateView):
) % self.model._meta.verbose_name_plural) ) % self.model._meta.verbose_name_plural)
return redirect('/') return redirect('/')
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
try: try:
if settings.DEBUG or not TipoDispositivo.objects.exists(): if settings.DEBUG or not TipoDispositivo.objects.exists():
@ -1237,9 +1236,9 @@ class TextEditView(CompMixin, TemplateView):
'filhos': [], 'filhos': [],
'alts': [], 'alts': [],
'pai': None, 'pai': None,
'st': None, # dispositivo substituido 'st': None, # dispositivo substituido
'sq': None, # dispositivo subsequente 'sq': None, # dispositivo subsequente
'da': None, # dispositivo atualizador 'da': None, # dispositivo atualizador
'td': tds[d.tipo_dispositivo_id], # tipo do dispositivo 'td': tds[d.tipo_dispositivo_id], # tipo do dispositivo
'na': self.nota_alteracao(d, lista_ta_publicado)\ 'na': self.nota_alteracao(d, lista_ta_publicado)\
if d.ta_id == ta_id else None if d.ta_id == ta_id else None
@ -1480,30 +1479,36 @@ class ActionDeleteDispositivoMixin(ActionsCommonsMixin):
).first() ).first()
data = {} data = {}
if base_anterior: if not base_anterior or base == base.get_raiz():
data = self.get_json_for_refresh(base_anterior)
else:
base_anterior = base.get_nivel_zero_anterior() base_anterior = base.get_nivel_zero_anterior()
data = self.get_json_for_refresh(base_anterior) if not base_anterior:
base_anterior = base
data['pai'] = [base.get_raiz().pk] data = self.get_json_for_refresh(base_anterior)
if base == base_anterior:
data['pk'] = base.pk
self.set_message(data, 'danger', _(
'Base Inicial não pode ser removida'), modal=True)
else:
if base != base.get_raiz():
data['pai'] = [base.get_raiz().pk]
if ta_base.id != int(self.kwargs['ta_id']): if ta_base.id != int(self.kwargs['ta_id']):
data['pai'] = [base.dispositivo_atualizador.pk] data['pai'] = [base.dispositivo_atualizador.pk]
data['pk'] = base.dispositivo_atualizador.pk data['pk'] = base.dispositivo_atualizador.pk
try: try:
with transaction.atomic(): with transaction.atomic():
message = str(self.remover_dispositivo(base, bloco)) message = str(self.remover_dispositivo(base, bloco))
if message: if message:
self.set_message(data, 'warning', message, modal=True) self.set_message(data, 'warning', message, modal=True)
else: else:
self.set_message(data, 'success', _( self.set_message(data, 'success', _(
'Exclusão efetuada com sucesso!'), modal=True) 'Exclusão efetuada com sucesso!'), modal=True)
ta_base.reagrupar_ordem_de_dispositivos() ta_base.reagrupar_ordem_de_dispositivos()
except Exception as e: except Exception as e:
data['pk'] = self.kwargs['dispositivo_id'] data['pk'] = self.kwargs['dispositivo_id']
self.set_message(data, 'danger', str(e), modal=True) self.set_message(data, 'danger', str(e), modal=True)
return data return data

Loading…
Cancel
Save