Browse Source

Inserir Omissis e reordenar bloco de alteração

pull/483/head
LeandroRoberto 9 years ago
parent
commit
5bd6c90b04
  1. 29
      compilacao/models.py
  2. 18
      compilacao/views.py
  3. 4
      templates/compilacao/text_edit_bloco.html
  4. 5
      templates/compilacao/text_list_bloco.html

29
compilacao/models.py

@ -133,7 +133,7 @@ class TextoArticulado(TimestampedMixin):
'numero': self.numero, 'numero': self.numero,
'data': defaultfilters.date(self.data, "d \d\e F \d\e Y")} 'data': defaultfilters.date(self.data, "d \d\e F \d\e Y")}
def organizar_ordem_de_dispositivos(self): def ordenar_dispositivos(self):
dpts = Dispositivo.objects.filter(ta=self) dpts = Dispositivo.objects.filter(ta=self)
@ -1148,6 +1148,7 @@ class Dispositivo(BaseModel, TimestampedMixin):
dispositivo_base.get_numero_completo()) dispositivo_base.get_numero_completo())
dp.nivel = dispositivo_base.nivel dp.nivel = dispositivo_base.nivel
dp.texto = '' dp.texto = ''
dp.visibilidade = True
dp.ta = dispositivo_base.ta dp.ta = dispositivo_base.ta
dp.dispositivo_pai = dispositivo_base.dispositivo_pai dp.dispositivo_pai = dispositivo_base.dispositivo_pai
dp.publicacao = dispositivo_base.publicacao dp.publicacao = dispositivo_base.publicacao
@ -1203,6 +1204,32 @@ class Dispositivo(BaseModel, TimestampedMixin):
else: else:
dispositivo.set_numero_completo([1, 0, 0, 0, 0, 0, ]) dispositivo.set_numero_completo([1, 0, 0, 0, 0, 0, ])
def ordenar_bloco_alteracao(self):
if not self.tipo_dispositivo.dispositivo_de_articulacao or\
not self.tipo_dispositivo.dispositivo_de_alteracao:
return
filhos = Dispositivo.objects.order_by(
'ordem_bloco_atualizador').filter(
Q(dispositivo_pai_id=self.pk) |
Q(dispositivo_atualizador_id=self.pk))
if not filhos.exists():
return
ordem_max = filhos.last().ordem_bloco_atualizador
filhos.update(
ordem_bloco_atualizador=F('ordem_bloco_atualizador') + ordem_max)
filhos = filhos.values_list(
'pk', flat=True).order_by('ordem_bloco_atualizador')
count = 0
for d in filhos:
count += Dispositivo.INTERVALO_ORDEM
Dispositivo.objects.filter(pk=d).update(
ordem_bloco_atualizador=count)
class Vide(TimestampedMixin): class Vide(TimestampedMixin):
texto = models.TextField(verbose_name=_('Texto do Vide')) texto = models.TextField(verbose_name=_('Texto do Vide'))

18
compilacao/views.py

@ -1,6 +1,6 @@
import sys
from collections import OrderedDict from collections import OrderedDict
from datetime import datetime, timedelta from datetime import datetime, timedelta
import sys
from braces.views import FormMessagesMixin from braces.views import FormMessagesMixin
from django import forms from django import forms
@ -37,6 +37,7 @@ from compilacao.models import (Dispositivo, Nota,
from compilacao.utils import DISPOSITIVO_SELECT_RELATED from compilacao.utils import DISPOSITIVO_SELECT_RELATED
from crud.base import Crud, CrudListView, make_pagination from crud.base import Crud, CrudListView, make_pagination
TipoNotaCrud = Crud.build(TipoNota, 'tipo_nota') TipoNotaCrud = Crud.build(TipoNota, 'tipo_nota')
TipoVideCrud = Crud.build(TipoVide, 'tipo_vide') TipoVideCrud = Crud.build(TipoVide, 'tipo_vide')
TipoPublicacaoCrud = Crud.build(TipoPublicacao, 'tipo_publicacao') TipoPublicacaoCrud = Crud.build(TipoPublicacao, 'tipo_publicacao')
@ -1249,9 +1250,9 @@ class DispositivoSimpleEditView(TextEditView):
if len(result) > 2: if len(result) > 2:
result.pop() result.pop()
if tipb.dispositivo_de_articulacao and\ # if tipb.dispositivo_de_articulacao and\
tipb.dispositivo_de_alteracao: # tipb.dispositivo_de_alteracao:
result.pop() # result.pop()
except Exception as e: except Exception as e:
print(e) print(e)
@ -1337,7 +1338,7 @@ class ActionsEditMixin:
try: try:
with transaction.atomic(): with transaction.atomic():
data['message'] = str(self.remover_dispositivo(base, bloco)) data['message'] = str(self.remover_dispositivo(base, bloco))
ta_base.organizar_ordem_de_dispositivos() ta_base.ordenar_dispositivos()
except Exception as e: except Exception as e:
print(e) print(e)
data['pk'] = context['dispositivo_id'] data['pk'] = context['dispositivo_id']
@ -1859,6 +1860,13 @@ 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
dentro de um bloco de alteração'''
if dp.tipo_dispositivo.dispositivo_de_alteracao and\
not dp.tipo_dispositivo.dispositivo_de_articulacao:
dp.dispositivo_pai.ordenar_bloco_alteracao()
except Exception as e: except Exception as e:
print(e) print(e)

4
templates/compilacao/text_edit_bloco.html

@ -3,6 +3,8 @@
{% load common_tags %} {% load common_tags %}
{% for dpt in object_list %} {% for dpt in object_list %}
{% if dpt.tipo_dispositivo.dispositivo_de_alteracao and not dpt.tipo_dispositivo.dispositivo_de_articulacao%}
{% else %}
{% if dpt.nivel == view.flag_nivel_old %} {% if dpt.nivel == view.flag_nivel_old %}
</div> </div>
{% elif dpt.nivel < view.flag_nivel_old %} {% elif dpt.nivel < view.flag_nivel_old %}
@ -150,7 +152,7 @@
{% endif%} {% endif%}
{% set_nivel_old view dpt.nivel %} {% set_nivel_old view dpt.nivel %}
{% endif%}
{% endfor %} {% endfor %}
{% if view|isinst:'DispositivoSimpleEditView' %} {% if view|isinst:'DispositivoSimpleEditView' %}

5
templates/compilacao/text_list_bloco.html

@ -3,6 +3,8 @@
{% load common_tags %} {% load common_tags %}
{% for dpt in object_list %} {% for dpt in object_list %}
{% if dpt.tipo_dispositivo.dispositivo_de_alteracao and not dpt.tipo_dispositivo.dispositivo_de_articulacao%}
{% else %}
{% if dpt.nivel == view.flag_nivel_old %} {% if dpt.nivel == view.flag_nivel_old %}
</div> </div>
{% elif dpt.nivel < view.flag_nivel_old %} {% elif dpt.nivel < view.flag_nivel_old %}
@ -11,7 +13,7 @@
{% if forloop.first and not view|isinst:'TextView' %} {% if forloop.first and not view|isinst:'TextView' %}
{% else %} {% else %}
<div class="dpt {%if dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}bloco_alteracao{% endif %}" nivel="{{dpt.nivel}}"> <div class="dpt {%if dpt.tipo_dispositivo.dispositivo_de_articulacao and dpt.tipo_dispositivo.dispositivo_de_alteracao%}{{dpt.tipo_dispositivo.class_css}}{% endif %}" nivel="{{dpt.nivel}}">
{% endif%} {% endif%}
{% spaceless %} {% spaceless %}
@ -169,6 +171,7 @@
{%endwith%} {%endwith%}
{% endif%} {% endif%}
{% set_nivel_old view dpt.nivel %} {% set_nivel_old view dpt.nivel %}
{% endif %}
{% endfor %} {% endfor %}
{% if not view|isinst:'TextView' %} {% if not view|isinst:'TextView' %}

Loading…
Cancel
Save