diff --git a/sapl/compilacao/models.py b/sapl/compilacao/models.py index 11b135e82..b3c00acfa 100644 --- a/sapl/compilacao/models.py +++ b/sapl/compilacao/models.py @@ -1150,14 +1150,14 @@ class Dispositivo(BaseModel, TimestampedMixin): return dp def history(self): - primeiro = self - while primeiro.dispositivo_substituido: - primeiro = primeiro.dispositivo_substituido - - yield primeiro - while primeiro.dispositivo_subsequente: - primeiro = primeiro.dispositivo_subsequente - yield primeiro + ultimo = self + while ultimo.dispositivo_subsequente: + ultimo = ultimo.dispositivo_subsequente + + yield ultimo + while ultimo.dispositivo_substituido: + ultimo = ultimo.dispositivo_substituido + yield ultimo @staticmethod def new_instance_based_on(dispositivo_base, tipo_base): diff --git a/sapl/compilacao/views.py b/sapl/compilacao/views.py index c1642d96b..f513f2e0e 100644 --- a/sapl/compilacao/views.py +++ b/sapl/compilacao/views.py @@ -2066,22 +2066,17 @@ class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin, - substituidos e subsequentes devem ser religados 3 - Se é um dispositivo articulado e sem subsequente - - filhos automáticos não podem ser transferidos - filhos locais devem ser transferidos 4 - Se é um dispositivo articulado com subsequente - - filhos automáticos não devem ser transferidos - não deveria ter filhos locais """ - 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() + history = dispositivo_a_alterar.history() for d in history: if d.inicio_vigencia < bloco_alteracao.inicio_vigencia: diff --git a/sapl/static/js/compilacao_edit.js b/sapl/static/js/compilacao_edit.js index f653dce3c..c6abb42e5 100644 --- a/sapl/static/js/compilacao_edit.js +++ b/sapl/static/js/compilacao_edit.js @@ -56,7 +56,7 @@ function DispositivoEdit() { } instance.clearEditSelected = function() { - $('.dpt-selected .dpt-form').html(''); + $('.dpt-selected > .dpt-form').html(''); $('.dpt-actions, .dpt-actions-bottom').html(''); tinymce.remove(); $('.dpt-selected').removeClass('dpt-selected'); @@ -86,6 +86,12 @@ function DispositivoEdit() { instance.loadForm(dpt, formtype); } + instance.gc = function() { + setTimeout(function() { + $('.dpt:not(.dpt-selected) > .dpt-form').html(''); + },500); + } + instance.get_form_base = function () { var _this = $(this); _this.addClass('dpt-selected'); @@ -146,6 +152,8 @@ function DispositivoEdit() { dpt.find('.btn-group-inserts').removeClass('open'); $(this.parentElement).addClass('open') }); + + instance.gc(); }); } diff --git a/sapl/templates/compilacao/text_edit_bloco.html b/sapl/templates/compilacao/text_edit_bloco.html index d055ed447..41dda2b6d 100644 --- a/sapl/templates/compilacao/text_edit_bloco.html +++ b/sapl/templates/compilacao/text_edit_bloco.html @@ -7,8 +7,9 @@
{% trans 'Editar'%}{% trans 'Em Edição'%}: {{ node.td.nome }} {{ node.dpt.rotulo }} +
- +
{% if not node.dpt.rotulo and not node.dpt.texto and node.td.dispositivo_de_articulacao%} {% endif %}