diff --git a/compilacao/models.py b/compilacao/models.py
index a5f1b7bc0..d1a0aa6e9 100644
--- a/compilacao/models.py
+++ b/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'))
diff --git a/compilacao/views.py b/compilacao/views.py
index 44e4821e7..a6d117ecd 100644
--- a/compilacao/views.py
+++ b/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)
diff --git a/templates/compilacao/text_edit_bloco.html b/templates/compilacao/text_edit_bloco.html
index d2cad7afb..4684acc22 100644
--- a/templates/compilacao/text_edit_bloco.html
+++ b/templates/compilacao/text_edit_bloco.html
@@ -3,154 +3,156 @@
{% load common_tags %}
{% for dpt in object_list %}
- {% if dpt.nivel == view.flag_nivel_old %}
-
- {% elif dpt.nivel < view.flag_nivel_old %}
- {% close_div view.flag_nivel_old dpt.nivel 0 %}
- {% endif%}
-
- {% if forloop.first and view|isinst:'DispositivoSimpleEditView' %}
+ {% if dpt.tipo_dispositivo.dispositivo_de_alteracao and not dpt.tipo_dispositivo.dispositivo_de_articulacao%}
{% else %}
-
- {% endif%}
-
- {% if view|render_actions_head:dpt %}
-
+ {% elif dpt.nivel < view.flag_nivel_old %}
+ {% close_div view.flag_nivel_old dpt.nivel 0 %}
+ {% endif%}
+
+ {% if forloop.first and view|isinst:'DispositivoSimpleEditView' %}
+ {% else %}
+
+ {% endif%}
+
+ {% if view|render_actions_head:dpt %}
+
- {% endif%}
+
- {% 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%}
-
- {% endif %}
-
- {% spaceless %}
- {% if not dpt.tipo_dispositivo.dispositivo_de_alteracao %}
-
{{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ dpt.rotulo }}{{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}{% if dpt.texto == '' and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}({{dpt.tipo_dispositivo}} sem texto){%else%}{{ dpt.texto|safe }}{%endif%}
- {% endif %}
- {% if dpt.ta_publicado_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
-
- {{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
- {% nota_automatica dpt ta_pub_list %}
- {{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
-
- {% endif %}
- {% endspaceless %}
- {% if dpt.tipo_dispositivo.dispositivo_de_alteracao %}
- {%with node=dpt template_name='compilacao/text_edit_blocoalteracao.html' %}
- {%include template_name%}
- {%endwith%}
- {% endif%}
-
- {% endif%}
+ {% endif%}
- {% set_nivel_old view dpt.nivel %}
+ {% 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%}
+
+ {% endif %}
+
+ {% spaceless %}
+ {% if not dpt.tipo_dispositivo.dispositivo_de_alteracao %}
+
{{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ dpt.rotulo }}{{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}{% if dpt.texto == '' and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}({{dpt.tipo_dispositivo}} sem texto){%else%}{{ dpt.texto|safe }}{%endif%}
+ {% endif %}
+ {% if dpt.ta_publicado_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
+
+ {{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
+ {% nota_automatica dpt ta_pub_list %}
+ {{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
+
+ {% endif %}
+ {% endspaceless %}
+ {% if dpt.tipo_dispositivo.dispositivo_de_alteracao %}
+ {%with node=dpt template_name='compilacao/text_edit_blocoalteracao.html' %}
+ {%include template_name%}
+ {%endwith%}
+ {% endif%}
+
+ {% endif%}
+ {% set_nivel_old view dpt.nivel %}
+ {% endif%}
{% endfor %}
{% if view|isinst:'DispositivoSimpleEditView' %}
diff --git a/templates/compilacao/text_list_bloco.html b/templates/compilacao/text_list_bloco.html
index 5b10e7f75..831df3660 100644
--- a/templates/compilacao/text_list_bloco.html
+++ b/templates/compilacao/text_list_bloco.html
@@ -3,172 +3,175 @@
{% load common_tags %}
{% for dpt in object_list %}
- {% if dpt.nivel == view.flag_nivel_old %}
-
- {% elif dpt.nivel < view.flag_nivel_old %}
- {% close_div view.flag_nivel_old dpt.nivel 0 %}
- {% endif%}
-
- {% if forloop.first and not view|isinst:'TextView' %}
+ {% if dpt.tipo_dispositivo.dispositivo_de_alteracao and not dpt.tipo_dispositivo.dispositivo_de_articulacao%}
{% else %}
-
- {% endif%}
-
- {% spaceless %}
-
-
- {{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}
-
{{ dpt.rotulo }}
- {{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}
-
{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}{%if dpt.texto %}{{ dpt.texto|safe }}{%else%}{%if not dpt.tipo_dispositivo.dispositivo_de_articulacao %} {% endif %}{% endif %}
- {% if dpt.ta_publicado_id and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
-
- {{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
- {% nota_automatica dpt ta_pub_list %}
- {{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
-
- {% endif %}
- {% if user.is_authenticated and not dpt.tipo_dispositivo.dispositivo_de_articulacao%}
- {% if perms.compilacao.add_nota or perms.compilacao.add_vide or perms.compilacao.change_dispositivo%}
-
-
- {% if perms.compilacao.change_dispositivo %}- Ed
{% endif %}
- {% if perms.compilacao.add_nota %}- N
{% endif %}
- {% if perms.compilacao.add_vide %}- V
{% endif %}
-
-
-
- {% endif %}
- {% endif %}
+ {% if dpt.nivel == view.flag_nivel_old %}
+ {% elif dpt.nivel < view.flag_nivel_old %}
+ {% close_div view.flag_nivel_old dpt.nivel 0 %}
+ {% endif%}
- {% if not dpt.tipo_dispositivo.dispositivo_de_articulacao%}
-
{# Dispostivo Nota e Vides #}
-
{# Dispostivo Nota Lista#}
-
- {% if cita and cita|lookup:dpt.pk %}
- {% for vide in cita|lookup:dpt.pk %}
+ {% if forloop.first and not view|isinst:'TextView' %}
+ {% else %}
+
+ {% endif%}
- {%if not forloop.first %}
-
- •
- {% endif %}
-
-
-
-
- {% if user.is_authenticated %}
- {% if perms.compilacao.change_vide %}
- - Editar
- - •
- {% endif %}
- {% if perms.compilacao.delete_vide %}
- - Excluir
- - •
- {% endif %}
- {% endif %}
- - {{vide.tipo.nome}}
- - •
- - {{vide.created|date:"d M Y"}}
-
- Vide:
-
- {% if vide.dispositivo_ref.dispositivo_pai.nivel != 0 and vide.dispositivo_ref.dispositivo_pai.tipo_dispositivo.dispositivo_de_articulacao %}
-
{{ vide.dispositivo_ref}} {% trans 'do'%} {{ vide.dispositivo_ref.dispositivo_pai}} - {{ vide.dispositivo_ref.dispositivo_pai.ta}}
- {% else %}
-
{{ vide.dispositivo_ref}} - {{vide.dispositivo_ref.ta}}
- {% endif %}
- {% if vide.texto %} - {{vide.texto}}{% endif %}
-
-
- {% endfor %}
+ {% spaceless %}
+
+
+ {{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}
+
{{ dpt.rotulo }}
+ {{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}
+
{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}{%if dpt.texto %}{{ dpt.texto|safe }}{%else%}{%if not dpt.tipo_dispositivo.dispositivo_de_articulacao %} {% endif %}{% endif %}
+ {% if dpt.ta_publicado_id and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
+
+ {{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
+ {% nota_automatica dpt ta_pub_list %}
+ {{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
+
+ {% endif %}
+ {% if user.is_authenticated and not dpt.tipo_dispositivo.dispositivo_de_articulacao%}
+ {% if perms.compilacao.add_nota or perms.compilacao.add_vide or perms.compilacao.change_dispositivo%}
+
+
+ {% if perms.compilacao.change_dispositivo %}- Ed
{% endif %}
+ {% if perms.compilacao.add_nota %}- N
{% endif %}
+ {% if perms.compilacao.add_vide %}- V
{% endif %}
+
+
+
{% endif %}
+ {% endif %}
+
- {% if citado and citado|lookup:dpt.pk %}
- {% if cita and cita|lookup:dpt.pk %}
-
- •
- {% endif %}
+ {% if not dpt.tipo_dispositivo.dispositivo_de_articulacao%}
+
{# Dispostivo Nota e Vides #}
+
-
- {% endif%}
-
- {% endspaceless %}
- {% if dpt.tipo_dispositivo.dispositivo_de_alteracao%}
- {%with node=dpt template_name='compilacao/text_list_blocoalteracao.html' %}
- {%include template_name%}
- {%endwith%}
- {% endif%}
- {% set_nivel_old view dpt.nivel %}
+ {% endfor %}
+ {% endif %}
+ {%if notas and notas|lookup:dpt.pk and cita and cita|lookup:dpt.pk or notas and notas|lookup:dpt.pk and citado and citado|lookup:dpt.pk %}
+
- •
+ {% endif %}
+ {% if notas and notas|lookup:dpt.pk %}
+ {% for nota in notas|lookup:dpt.pk %}
+
+ {% if user.is_superuser or nota.publicidade == nota.NPUBL or nota.publicidade == nota.NINST and user.is_authenticated or nota.publicidade == nota.NPRIV and nota.owner == user %}
+ {%if not forloop.first %}
+
- •
+ {% endif %}
+
-
+
+ {% if user.is_authenticated %}
+ {% if user == nota.owner and perms.compilacao.change_nota or user.is_superuser%}
+ - Editar
+ - •
+ {% endif %}
+ {% if user == nota.owner and perms.compilacao.delete_nota or user.is_superuser %}
+ - Excluir
+ - •
+ {% endif %}
+ {% endif %}
+ - {{nota.tipo.nome}}
+ - •
+ - {%if nota.owner.first_name%}{{nota.owner.first_name}}{%else%}{{nota.owner}}{% endif %}
+ - •
+ - {{nota.publicacao|date:"d M Y"}}
+
+
+ {%if nota.titulo %}
+
+ {% endif %}
+
+
+ {%comment%}
+
+ - {{nota.efetividade|date:"d M Y"}}
+ - •
+ - {{nota.get_publicidade_display}}
+
+ {%endcomment%}
+
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+
+
+ {% endif%}
+
+ {% endspaceless %}
+ {% if dpt.tipo_dispositivo.dispositivo_de_alteracao%}
+ {%with node=dpt template_name='compilacao/text_list_blocoalteracao.html' %}
+ {%include template_name%}
+ {%endwith%}
+ {% endif%}
+ {% set_nivel_old view dpt.nivel %}
+ {% endif %}
{% endfor %}
{% if not view|isinst:'TextView' %}