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,
'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)
@ -1148,6 +1148,7 @@ class Dispositivo(BaseModel, TimestampedMixin):
dispositivo_base.get_numero_completo())
dp.nivel = dispositivo_base.nivel
dp.texto = ''
dp.visibilidade = True
dp.ta = dispositivo_base.ta
dp.dispositivo_pai = dispositivo_base.dispositivo_pai
dp.publicacao = dispositivo_base.publicacao
@ -1203,6 +1204,32 @@ class Dispositivo(BaseModel, TimestampedMixin):
else:
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):
texto = models.TextField(verbose_name=_('Texto do Vide'))

18
compilacao/views.py

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

4
templates/compilacao/text_edit_bloco.html

@ -3,6 +3,8 @@
{% load common_tags %}
{% 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 %}
</div>
{% elif dpt.nivel < view.flag_nivel_old %}
@ -150,7 +152,7 @@
{% endif%}
{% set_nivel_old view dpt.nivel %}
{% endif%}
{% endfor %}
{% if view|isinst:'DispositivoSimpleEditView' %}

5
templates/compilacao/text_list_bloco.html

@ -3,6 +3,8 @@
{% load common_tags %}
{% 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 %}
</div>
{% elif dpt.nivel < view.flag_nivel_old %}
@ -11,7 +13,7 @@
{% if forloop.first and not view|isinst:'TextView' %}
{% 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%}
{% spaceless %}
@ -169,6 +171,7 @@
{%endwith%}
{% endif%}
{% set_nivel_old view dpt.nivel %}
{% endif %}
{% endfor %}
{% if not view|isinst:'TextView' %}

Loading…
Cancel
Save