@ -1041,10 +1041,12 @@ class TextEditView(TemplateView):
class ActionsCommonsMixin :
class ActionsCommonsMixin :
def set_message ( self , data , _type , message ) :
def set_message ( self , data , _type , message , time = None ) :
data [ ' message ' ] = {
data [ ' message ' ] = {
' type ' : _type ,
' type ' : _type ,
' value ' : str ( message ) }
' value ' : str ( message ) }
if time :
data [ ' message ' ] [ ' time ' ] = time
return
return
def get_json_for_refresh ( self , dp , dpauto = None ) :
def get_json_for_refresh ( self , dp , dpauto = None ) :
@ -1203,7 +1205,7 @@ class ActionDeleteDispositivoMixin(ActionsCommonsMixin):
p . fim_eficacia = None
p . fim_eficacia = None
for d in base . dispositivos_filhos_set . all ( ) :
for d in base . dispositivos_filhos_set . all ( ) :
if d . is_relative_auto_insert ( ) :
if d . auto_inserido :
self . remover_dispositivo ( d , bloco )
self . remover_dispositivo ( d , bloco )
elif not bloco :
elif not bloco :
p . dispositivos_filhos_set . add ( d )
p . dispositivos_filhos_set . add ( d )
@ -1226,7 +1228,7 @@ class ActionDeleteDispositivoMixin(ActionsCommonsMixin):
transferir para o caput imediatamente acima visto se
transferir para o caput imediatamente acima visto se
tratar de uma exclusão de item ? """
tratar de uma exclusão de item ? """
d_nivel_old = d . nivel
d_nivel_old = d . nivel
if d . is_relative_auto_insert ( ) :
if d . auto_inserido :
d . delete ( )
d . delete ( )
continue
continue
@ -1506,7 +1508,7 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin):
if dp . nivel > = nivel :
if dp . nivel > = nivel :
continue
continue
if dp . is_relative_auto_insert ( perfil_pk ) :
if dp . auto_inserido :
continue
continue
if prox_possivel and \
if prox_possivel and \
@ -1605,7 +1607,7 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin):
if paradentro and not td . permitido_inserir_in (
if paradentro and not td . permitido_inserir_in (
tipb ,
tipb ,
include_relative_autos = Fals e,
include_relative_autos = Tru e,
perfil_pk = perfil_pk ) :
perfil_pk = perfil_pk ) :
continue
continue
@ -1617,7 +1619,7 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin):
for possivelpai in parents :
for possivelpai in parents :
if td . permitido_inserir_in (
if td . permitido_inserir_in (
possivelpai . tipo_dispositivo ,
possivelpai . tipo_dispositivo ,
include_relative_autos = Fals e,
include_relative_autos = Tru e,
perfil_pk = perfil_pk ) :
perfil_pk = perfil_pk ) :
flag_insercao = True
flag_insercao = True
break
break
@ -1625,7 +1627,7 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin):
if not flag_insercao :
if not flag_insercao :
continue
continue
if possivelpai . is_relative_auto_insert ( perfil_pk ) :
if possivelpai . auto_inserido :
continue
continue
if prox_possivel :
if prox_possivel :
@ -1694,7 +1696,7 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin):
# Dispositivo de Vigência do Texto Original e de Dpts Alterados
# Dispositivo de Vigência do Texto Original e de Dpts Alterados
dvt = Dispositivo . objects . get ( pk = self . kwargs [ ' dispositivo_id ' ] )
dvt = Dispositivo . objects . get ( pk = self . kwargs [ ' dispositivo_id ' ] )
if dvt . is_relative_auto_insert ( ) :
if dvt . auto_inserido :
dvt = dvt . dispositivo_pai
dvt = dvt . dispositivo_pai
try :
try :
@ -1823,15 +1825,17 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin):
if pp . exists ( ) and pp [ 0 ] . quantidade_permitida > = 0 :
if pp . exists ( ) and pp [ 0 ] . quantidade_permitida > = 0 :
qtd_existente = Dispositivo . objects . filter (
qtd_existente = Dispositivo . objects . filter (
ta_id = dp . ta_id ,
ta_id = dp . ta_id ,
tipo_dispositivo_id = dp . tipo_dispositivo_id ) . count ( )
tipo_dispositivo_id = dp . tipo_dispositivo_id ,
dispositivo_pai = dp . dispositivo_pai ) . count ( )
if qtd_existente > = pp [ 0 ] . quantidade_permitida :
if qtd_existente > = pp [ 0 ] . quantidade_permitida :
return { ' pk ' : base . pk ,
data = { ' pk ' : base . pk ,
' pai ' : [ base . dispositivo_pai . pk , ] ,
' pai ' : [ base . dispositivo_pai . pk , ] }
' message ' : str ( _ ( ' Limite de inserções de '
self . set_message ( data , ' warning ' ,
_ ( ' Limite de inserções de '
' dispositivos deste tipo '
' dispositivos deste tipo '
' foi excedido. ' ) )
' foi excedido. ' ) , time = 6000 )
}
return data
ordem = base . criar_espaco (
ordem = base . criar_espaco (
espaco_a_criar = 1 + count_auto_insert , local = local_add )
espaco_a_criar = 1 + count_auto_insert , local = local_add )
@ -1860,6 +1864,7 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin):
dp . ordem = dp . ordem + Dispositivo . INTERVALO_ORDEM
dp . ordem = dp . ordem + Dispositivo . INTERVALO_ORDEM
dp . publicacao = pub_last
dp . publicacao = pub_last
dp . auto_inserido = True
dp . save ( )
dp . save ( )
dp_auto_insert = dp
dp_auto_insert = dp
dp = Dispositivo . objects . get ( pk = dp_pk )
dp = Dispositivo . objects . get ( pk = dp_pk )
@ -2071,16 +2076,7 @@ class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin,
perfil_pk = self . request . session [ ' perfil_estrutural ' ]
perfil_pk = self . request . session [ ' perfil_estrutural ' ]
""" Se o usuário selecionar um dispositivo de auto inserção,
data = { }
como um caput , por exemplo , a alteração é
migrada para o pai imediato """
if dispositivo_a_alterar . is_relative_auto_insert ( perfil_pk = perfil_pk ) :
dispositivo_a_alterar = dispositivo_a_alterar . dispositivo_pai
if dispositivo_a_alterar . tipo_dispositivo . dispositivo_de_articulacao :
pass
else :
ndp = Dispositivo . new_instance_based_on (
ndp = Dispositivo . new_instance_based_on (
dispositivo_a_alterar , dispositivo_a_alterar . tipo_dispositivo )
dispositivo_a_alterar , dispositivo_a_alterar . tipo_dispositivo )
@ -2132,11 +2128,15 @@ class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin,
d . dispositivo_pai = ndp
d . dispositivo_pai = ndp
d . save ( )
d . save ( )
self . set_message (
data , ' success ' ,
_ ( ' Dispositivo de Alteração adicionado com sucesso. ' ) )
except Exception as e :
except Exception as e :
print ( e )
print ( e )
data = { ' pk ' : ndp . pk ,
data . update ( { ' pk ' : ndp . pk ,
' pai ' : [ bloco_alteracao . pk , ] }
' pai ' : [ bloco_alteracao . pk , ] } )
return data
return data
@ -2226,9 +2226,6 @@ class DispositivoDinamicEditView(
data = self . registra_alteracao ( d , dispositivo_a_alterar )
data = self . registra_alteracao ( d , dispositivo_a_alterar )
self . set_message (
data , ' success ' ,
_ ( ' Dispositivo de Alteração adicionado com sucesso. ' ) )
elif formtype == ' get_form_base ' :
elif formtype == ' get_form_base ' :
texto = request . POST [ ' texto ' ] . strip ( )
texto = request . POST [ ' texto ' ] . strip ( )
texto_atualizador = request . POST [ ' texto_atualizador ' ] . strip ( )
texto_atualizador = request . POST [ ' texto_atualizador ' ] . strip ( )