@ -2077,6 +2077,26 @@ class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin,
perfil_pk = self . request . session [ ' perfil_estrutural ' ]
data = { }
data . update ( { ' pk ' : bloco_alteracao . pk ,
' pai ' : [ bloco_alteracao . pk , ] } )
history = list ( dispositivo_a_alterar . history ( ) )
history . reverse ( )
for d in history :
if d . inicio_vigencia < bloco_alteracao . inicio_vigencia :
dispositivo_a_alterar = d
break
if ( dispositivo_a_alterar . inicio_vigencia >
bloco_alteracao . inicio_vigencia ) :
self . set_message (
data , ' danger ' ,
_ ( ' Não é possível alterar um Dispositivo com início de '
' Vigência posterior a data de Vigência do Dispositivo '
' Alterador! ' ) , time = 10000 )
return data
ndp = Dispositivo . new_instance_based_on (
dispositivo_a_alterar , dispositivo_a_alterar . tipo_dispositivo )
@ -2093,7 +2113,6 @@ class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin,
ndp . inicio_vigencia = bloco_alteracao . inicio_vigencia
try :
with transaction . atomic ( ) :
ordem = dispositivo_a_alterar . criar_espaco (
espaco_a_criar = 1 , local = ' json_add_in ' )
@ -2120,6 +2139,9 @@ class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin,
p . save ( )
if n :
# a ordem desse objeto foi alterada pela função criar_espaco
# deve ser recarregado para atualização
n . refresh_from_db ( )
n . dispositivo_substituido = ndp
n . save ( )
@ -3020,7 +3042,8 @@ class TextNotificacoesView(CompMixin, ListView, FormView):
_ ( ' Dispositivo está substituindo um Dispositivo que não '
' possui este como seu Dispositivo Subsequente. ' ) )
padd ( r , type_notificacao ,
padd ( r ,
type_notificacao ,
' sapl.compilacao:dispositivo_edit_alteracao ' ,
r . dispositivo_subsequente and
r . dispositivo_subsequente . dispositivo_substituido != r ,