From 71149223827c7966795f9b2264833af5b86ade3b Mon Sep 17 00:00:00 2001 From: LeandroRoberto Date: Fri, 16 Sep 2016 17:07:44 -0300 Subject: [PATCH] =?UTF-8?q?Ajustes=20na=20inclus=C3=A3o=20de=20disp=20de?= =?UTF-8?q?=20inser=C3=A7=C3=A3o=20autom=C3=A1tica?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/compilacao/forms.py | 9 ++-- .../migrations/0053_auto_20160916_1420.py | 19 +++++++ .../migrations/0054_auto_20160916_1424.py | 19 +++++++ sapl/compilacao/models.py | 1 + sapl/compilacao/views.py | 54 +++++++++++-------- sapl/static/js/compilacao_edit.js | 13 +++-- .../compilacao/ajax_actions_dinamic_edit.html | 13 ++--- .../templates/compilacao/text_edit_bloco.html | 31 ++++++++--- 8 files changed, 113 insertions(+), 46 deletions(-) create mode 100644 sapl/compilacao/migrations/0053_auto_20160916_1420.py create mode 100644 sapl/compilacao/migrations/0054_auto_20160916_1424.py diff --git a/sapl/compilacao/forms.py b/sapl/compilacao/forms.py index 101668588..30ad5c63a 100644 --- a/sapl/compilacao/forms.py +++ b/sapl/compilacao/forms.py @@ -636,8 +636,8 @@ class DispositivoEdicaoBasicaForm(ModelForm): btns_excluir = [] - if not inst.tipo_dispositivo.dispositivo_de_alteracao and \ - not inst.tipo_dispositivo.dispositivo_de_articulacao: + if not (inst.tipo_dispositivo.dispositivo_de_alteracao and + inst.tipo_dispositivo.dispositivo_de_articulacao): btns_excluir = [ HTML('= 0: - qtdp -= Dispositivo.objects.filter( - ta_id=base.ta_id, - tipo_dispositivo_id=tipoauto.filho_permitido.pk - ).count() - if qtdp > 0: - count_auto_insert += 1 - else: - count_auto_insert += 1 - dp_irmao = None dp_pai = None for dp in parents: @@ -1847,7 +1831,7 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin): return data ordem = base.criar_espaco( - espaco_a_criar=1 + count_auto_insert, local=local_add) + espaco_a_criar=1, local=local_add) dp.rotulo = dp.rotulo_padrao() dp.ordem = ordem @@ -1856,9 +1840,32 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin): dp.publicacao = pub_last dp.save() + tipos_dp_auto_insert = tipo.filhos_permitidos.filter( + filho_de_insercao_automatica=True, + perfil_id=context['perfil_pk']) + + count_auto_insert = 0 + for tipoauto in tipos_dp_auto_insert: + qtdp = tipoauto.quantidade_permitida + if qtdp >= 0: + qtdp -= Dispositivo.objects.filter( + ta_id=dp.ta_id, + dispositivo_pai_id=dp.id, + tipo_dispositivo_id=tipoauto.filho_permitido.pk + ).count() + if qtdp > 0: + count_auto_insert += 1 + else: + count_auto_insert += 1 + # Inserção automática if count_auto_insert: + + ordem = dp.criar_espaco( + espaco_a_criar=count_auto_insert, local=local_add) + dp_pk = dp.pk + dp.ordem = ordem dp.nivel += 1 for tipoauto in tipos_dp_auto_insert: dp.dispositivo_pai_id = dp_pk @@ -1870,12 +1877,13 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin): dp.set_numero_completo([1, 0, 0, 0, 0, 0, ]) dp.rotulo = dp.rotulo_padrao() dp.texto = '' - dp.ordem = dp.ordem + Dispositivo.INTERVALO_ORDEM dp.publicacao = pub_last dp.auto_inserido = True dp.save() dp_auto_insert = dp + + ordem += Dispositivo.INTERVALO_ORDEM dp = Dispositivo.objects.get(pk=dp_pk) ''' Reenquadrar todos os dispositivos que possuem pai diff --git a/sapl/static/js/compilacao_edit.js b/sapl/static/js/compilacao_edit.js index d73b312ed..94c279067 100644 --- a/sapl/static/js/compilacao_edit.js +++ b/sapl/static/js/compilacao_edit.js @@ -40,19 +40,22 @@ function DispositivoEdit() { $.get(url, form_data).done(function(data) { instance.clearEditSelected(); - instance.waitHide(); if (data.pk != null) { if (data.message !== undefined) { - if (data.message.type == 'danger') - instance.modalMessage(data.message.value, 'alert-'+data.message.type, null); + if (data.message.modal) { + instance.modalMessage(data.message.value, 'alert-'+data.message.type, function() { + instance.waitShow(); + instance.refreshScreenFocusPk(data); + }); + return; + } else { instance.message(data) } } instance.refreshScreenFocusPk(data); } - }).fail(instance.waitHide) - .always(instance.waitHide); + }).fail(instance.waitHide).always(instance.waitHide); } instance.clearEditSelected = function() { diff --git a/sapl/templates/compilacao/ajax_actions_dinamic_edit.html b/sapl/templates/compilacao/ajax_actions_dinamic_edit.html index f6c24b0a8..3231fdd1d 100644 --- a/sapl/templates/compilacao/ajax_actions_dinamic_edit.html +++ b/sapl/templates/compilacao/ajax_actions_dinamic_edit.html @@ -61,10 +61,11 @@ {% endfor %} {%endif%} - -
- -
+ {% if not object.ta_publicado%} +
+ +
+ {%endif%} diff --git a/sapl/templates/compilacao/text_edit_bloco.html b/sapl/templates/compilacao/text_edit_bloco.html index de5a36060..2ce8e8d11 100644 --- a/sapl/templates/compilacao/text_edit_bloco.html +++ b/sapl/templates/compilacao/text_edit_bloco.html @@ -6,25 +6,40 @@
+ {% if node.dpt.auto_inserido and node.da%} + {{ node.dpt.dispositivo_pai.tipo_dispositivo.rotulo_prefixo_html|safe }} + {% if node.da and node in node.da.alts %} + {{ node.dpt.dispositivo_pai.rotulo }} + {% else %} + {{ node.dpt.dispositivo_pai.rotulo }} + {% endif %} + + {{ node.dpt.dispositivo_pai.tipo_dispositivo.rotulo_sufixo_html|safe }} - {{ node.td.rotulo_prefixo_html|safe }} - {% if node.da and node in node.da.alts %} - {{ node.dpt.rotulo }} {% else %} - {{ node.dpt.rotulo }} + {{ node.td.rotulo_prefixo_html|safe }} + {% if node.da and node in node.da.alts %} + {{ node.dpt.rotulo }} + {% else %} + {{ node.dpt.rotulo }} + {% endif %} + {{ node.td.rotulo_sufixo_html|safe }} {% endif %} - {{ node.td.rotulo_sufixo_html|safe }} + + + + {{ node.td.texto_prefixo_html|safe }} {% if node.da and node in node.da.alts and not node.dpt.visibilidade %}({% trans 'Dispositivo visível apenas no Texto Articulado Original'%}){% endif %}