diff --git a/compilacao/views.py b/compilacao/views.py index a6d117ecd..13136e191 100644 --- a/compilacao/views.py +++ b/compilacao/views.py @@ -1860,7 +1860,7 @@ class ActionsEditMixin: filho.rotulo = filho.rotulo_padrao() filho.save() - ''' Reordenar ordem de bloco atualizador casa a inserção seja + ''' Reordenar bloco atualizador caso a inserção seja dentro de um bloco de alteração''' if dp.tipo_dispositivo.dispositivo_de_alteracao and\ @@ -1915,6 +1915,49 @@ class ActionsEditMixin: return data + def move_dpt_alterado(self, context): + + bloco = Dispositivo.objects.get(pk=context['bloco_pk']) + dpt = Dispositivo.objects.get(pk=context['dispositivo_id']) + + if dpt.tipo_dispositivo.dispositivo_de_alteracao: + dpt.dispositivo_pai = bloco + else: + dpt.dispositivo_atualizador = bloco + + filhos = Dispositivo.objects.order_by( + 'ordem_bloco_atualizador').filter( + Q(dispositivo_pai_id=bloco.pk) | + Q(dispositivo_atualizador_id=bloco.pk)) + + if not filhos.exists(): + dpt.ordem_bloco_atualizador = Dispositivo.INTERVALO_ORDEM + else: + index = int(context['index']) + fpks = filhos.values_list( + 'pk', flat=True).order_by('ordem_bloco_atualizador') + + index_dpt = 0 + try: + index_dpt = list(fpks).index(dpt.pk) + except: + pass + + filho_index = filhos[ + index if index_dpt >= index + else index + 1] if ( + index if index_dpt >= index + else index + 1) < filhos.count() else filhos.last() + if filhos.last() == filho_index: + dpt.ordem_bloco_atualizador = \ + filho_index.ordem_bloco_atualizador + 1 + else: + dpt.ordem_bloco_atualizador = \ + filho_index.ordem_bloco_atualizador - 1 + + dpt.save() + bloco.ordenar_bloco_alteracao() + class ActionsEditView(ActionsEditMixin, TemplateView): @@ -1934,6 +1977,10 @@ class ActionsEditView(ActionsEditMixin, TemplateView): del self.request.session['herancas'] del self.request.session['herancas_fila'] + if context['action'] == 'move_dpt_alterado': + context['index'] = self.request.GET['index'] + context['bloco_pk'] = self.request.GET['bloco_pk'] + return self.render_to_json_response(context, **response_kwargs) diff --git a/static/js/compilacao_edit.js b/static/js/compilacao_edit.js index c460ed3c7..5b17f425e 100644 --- a/static/js/compilacao_edit.js +++ b/static/js/compilacao_edit.js @@ -268,9 +268,13 @@ function reloadFunctionClicks() { revert: true, stop: function( event, ui ) { var pk = ui.item.attr('pk'); - var pk_bloco = ui.item.closest('.bloco').closest('.dpt').attr('pk'); - console.log(pk+ ' - '+ pk_bloco); - }, + var bloco_pk = ui.item.closest('.bloco').closest('.dpt').attr('pk'); + + url = pk+'/actions?action=move_dpt_alterado&index='+ui.item.index()+'&bloco_pk='+bloco_pk; + $.get(url).done(function( data ) { + console.log(pk+ ' - '+ bloco_pk); + }); + } }); $( ".bloco_alteracao .dpt" ).draggable({ @@ -278,10 +282,10 @@ function reloadFunctionClicks() { revert: 'invalid', zIndex: 1, drag: function( event, ui ) { - $( ".bloco_alteracao" ).css('border-width', '2px'); + $( ".bloco_alteracao" ).addClass('drag'); }, stop: function( event, ui ) { - $( ".bloco_alteracao" ).css('border-width', '0px'); + $( ".bloco_alteracao" ).removeClass('drag'); }, }); diff --git a/static/styles/compilacao.scss b/static/styles/compilacao.scss index 40163d5ad..a35b694b8 100644 --- a/static/styles/compilacao.scss +++ b/static/styles/compilacao.scss @@ -524,9 +524,9 @@ a:link:after, a:visited:after { .caput { margin-top: 0; } - & > .actions_left { + & > .actions_right { color: #fff; - left: 0em; + right: 0em; position: absolute; opacity: 0; transition: all 0.4s ease-in-out; @@ -542,7 +542,7 @@ a:link:after, a:visited:after { } } - &:hover > .actions_left { + &:hover > .actions_right { opacity: 1; } @@ -565,7 +565,13 @@ a:link:after, a:visited:after { padding: 0em ; background-color: transparent; min-height: 100px; - border: 0px dashed #d9ddde; + border: 2px dashed #fff; + &:hover { + border-color: #d9ddde; + } + &.drag { + border-color: #d9ddde; + } .dpt { width: 100% !important; box-shadow: 0 -1px 0 #e5e5e5, 0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24); @@ -636,7 +642,7 @@ a:link:after, a:visited:after { } } - & > .actions_left { + & > .actions_right { display: none; } diff --git a/templates/compilacao/text_edit_bloco.html b/templates/compilacao/text_edit_bloco.html index 4684acc22..55dd97cd7 100644 --- a/templates/compilacao/text_edit_bloco.html +++ b/templates/compilacao/text_edit_bloco.html @@ -126,7 +126,7 @@ {% if view.pk_view == 0 and view.pk_edit == 0 or view.pk_edit != view.pk_view %} {% if not dpt.rotulo and not dpt.texto and dpt.tipo_dispositivo.dispositivo_de_articulacao%} -
+
{% trans 'Editar'%} {{ dpt.tipo_dispositivo.nome }} {{ dpt.rotulo }}
{% endif %}