Browse Source

back-end de alternacia de dispositivos alterados

pull/483/head
LeandroRoberto 9 years ago
parent
commit
fbc542dc41
  1. 49
      compilacao/views.py
  2. 14
      static/js/compilacao_edit.js
  3. 16
      static/styles/compilacao.scss
  4. 2
      templates/compilacao/text_edit_bloco.html

49
compilacao/views.py

@ -1860,7 +1860,7 @@ class ActionsEditMixin:
filho.rotulo = filho.rotulo_padrao() filho.rotulo = filho.rotulo_padrao()
filho.save() 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''' dentro de um bloco de alteração'''
if dp.tipo_dispositivo.dispositivo_de_alteracao and\ if dp.tipo_dispositivo.dispositivo_de_alteracao and\
@ -1915,6 +1915,49 @@ class ActionsEditMixin:
return data 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): class ActionsEditView(ActionsEditMixin, TemplateView):
@ -1934,6 +1977,10 @@ class ActionsEditView(ActionsEditMixin, TemplateView):
del self.request.session['herancas'] del self.request.session['herancas']
del self.request.session['herancas_fila'] 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) return self.render_to_json_response(context, **response_kwargs)

14
static/js/compilacao_edit.js

@ -268,9 +268,13 @@ function reloadFunctionClicks() {
revert: true, revert: true,
stop: function( event, ui ) { stop: function( event, ui ) {
var pk = ui.item.attr('pk'); var pk = ui.item.attr('pk');
var pk_bloco = ui.item.closest('.bloco').closest('.dpt').attr('pk'); var bloco_pk = ui.item.closest('.bloco').closest('.dpt').attr('pk');
console.log(pk+ ' - '+ pk_bloco);
}, 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({ $( ".bloco_alteracao .dpt" ).draggable({
@ -278,10 +282,10 @@ function reloadFunctionClicks() {
revert: 'invalid', revert: 'invalid',
zIndex: 1, zIndex: 1,
drag: function( event, ui ) { drag: function( event, ui ) {
$( ".bloco_alteracao" ).css('border-width', '2px'); $( ".bloco_alteracao" ).addClass('drag');
}, },
stop: function( event, ui ) { stop: function( event, ui ) {
$( ".bloco_alteracao" ).css('border-width', '0px'); $( ".bloco_alteracao" ).removeClass('drag');
}, },
}); });

16
static/styles/compilacao.scss

@ -524,9 +524,9 @@ a:link:after, a:visited:after {
.caput { .caput {
margin-top: 0; margin-top: 0;
} }
& > .actions_left { & > .actions_right {
color: #fff; color: #fff;
left: 0em; right: 0em;
position: absolute; position: absolute;
opacity: 0; opacity: 0;
transition: all 0.4s ease-in-out; 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; opacity: 1;
} }
@ -565,7 +565,13 @@ a:link:after, a:visited:after {
padding: 0em ; padding: 0em ;
background-color: transparent; background-color: transparent;
min-height: 100px; min-height: 100px;
border: 0px dashed #d9ddde; border: 2px dashed #fff;
&:hover {
border-color: #d9ddde;
}
&.drag {
border-color: #d9ddde;
}
.dpt { .dpt {
width: 100% !important; 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); 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; display: none;
} }

2
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 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%} {% if not dpt.rotulo and not dpt.texto and dpt.tipo_dispositivo.dispositivo_de_articulacao%}
<div class="btns-action actions_left"> <div class="btns-action actions_right">
<a class="btn-edit" pk="{{dpt.pk}}">{% trans 'Editar'%} {{ dpt.tipo_dispositivo.nome }} {{ dpt.rotulo }}</a> <a class="btn-edit" pk="{{dpt.pk}}">{% trans 'Editar'%} {{ dpt.tipo_dispositivo.nome }} {{ dpt.rotulo }}</a>
</div> </div>
{% endif %} {% endif %}

Loading…
Cancel
Save