|
|
@ -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) |
|
|
|
|
|
|
|
|
|
|
|