field=models.ForeignKey(blank=True,default=None,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='dispositivos_vigencias_set',to='compilacao.Dispositivo',verbose_name='Dispositivo de Vigência'),
field=models.ForeignKey(blank=True,default=None,null=True,on_delete=django.db.models.deletion.SET_NULL,related_name='dispositivos_vigencias_set',to='compilacao.Dispositivo',verbose_name='Dispositivo de Vigência'),
{% url 'compilacao:dispositivo_edit' object.ta_id object.pk as edit_url%}
{% url 'compilacao:dispositivo_edit_vigencia' object.ta_id object.pk as edit_vigencia_url %}
{% url 'compilacao:dispositivo_edit_alteracao' object.ta_id object.pk as edit_alteracao_url %}
{% url 'compilacao:dispositivo_edit_definidor_vigencia' object.ta_id object.pk as edit_definidor_vigencia_url %}
<li{%ifrequest.get_full_path ==edit_url%}class="active"{%endif%}><aclass="btn-warning"href="{{ edit_url }}">{% trans 'Dados Básicos' %}</a></li>
<li{%ifrequest.get_full_path ==edit_vigencia_url%}class="active"{%endif%}><aclass="btn-warning"href="{{ edit_vigencia_url }}">{% trans 'Vigência' %}</a></li>
<li{%ifrequest.get_full_path ==edit_definidor_vigencia_url%}class="active"{%endif%}><aclass="btn-danger"href="{{ edit_definidor_vigencia_url }}">{% trans 'Definidor de Vigência' %}</a></li>
<li{%ifrequest.get_full_path ==edit_alteracao_url%}class="active"{%endif%}><aclass="btn-danger"href="{{ edit_alteracao_url }}">{% trans 'Alteração' %}</a></li>
<li><ahref="#"class="btn-danger">{% trans 'Alterador' %}</a></li>
</ul>
{% endblock sections_nav %}{% trans '' %}
{% block title %}
<h1><small>{{object.ta}}</small><br>{% trans 'Edição de Dispositivo' %}</h1>
{% if dpt.tipo_dispositivo.dispositivo_de_alteracao or dpt.dispositivo_pai.nivel > 0 and dpt.is_relative_auto_insert and dpt.dispositivo_pai not in object_list %}
<buttontype="button"class="close"data-dismiss="modal"aria-label="{% trans "Fechar"%}"><spanaria-hidden="true">×</span></button>
<h4class="modal-title"id="myModalLabel">Orientações Gerais <small>Dicas e Boas Práticas</small></h4>
</div>
<divclass="modal-body">
{% blocktrans %}
<ol>
<li>As opções de inserção e exclusão tem precedência sobre qualquer alteração feita na edição avançada.
</li>
<li>Os Perfis Estruturais controlam as possibilidades do inserção do Editor. Perfis Estruturais servem para guiar as permissões de inserções relativas e podem, caso configurados de acordo, guiar a construção do Texto para se enquadrar em legislação e/ou regras específicas.</li>
<li>O Editor pode estar em quatro modos:
<ol>
<li><strong>(E) Editor Simples:</strong> Edição Básica de Texto, além de novas inserções e exclusões. É recomendável o uso deste sempre que possível.</li>
<li><strong>(E+) Editor Rico:</strong> Edição do texto com o editor TinyMCE. Neste editor é possível registro de tabelas e textos customizados</li>
<li><strong>(E*) Editor Avançado:</strong> Edição e Lançamento de Dispositivos Originais, Alterados e Alteradores, além de todos os dados que controlam a compilação. </li>
<li><strong>(C) Construtor Estrutural:</strong> Neste modo, o editor foca na inserção de Dispositivos e busca deixar mais acessíveis estas ações.</li>
</ol></li>
<li>A Edição Avançada é complexa e sensível a erros de edição. É recomendável o uso cuidadoso e consciente das funcionalidades. Ela será tratada num tópico aparte.</li>
<li>Gere toda a estrutura básica sem adicionar texto, isso evitará erros estruturais e otimizará seu trabalho por:
<ol>
<li>Facilitar o trabalho local aí, de seu navegador.</li>
<li>Diminuir o tráfego de rede.</li>
<li>Desonerar os servidores que processam e armazenam seus dados.</li>
</ol>
</li>
<li>Inserir os Dispositivos na sequência natural é mais produtivo para você, além de ser também mais simples para o algorítmo que controla este processo. Quanto maior a mudança estutural, mais lento será o procedimento. </li>
<li>A Opção DVt (Dispositivo de Vigência do Texto) redefine o dispositivo em seleção como o dispositivo de vigência de todos os outros, inclusive os dispositivos alterados, caso se trate de um Texto Alterador.
<ol>
<li>O Dispositivo de Vigência de Dispositivos Alterados é, quase sempre, o Dispositivo do Texto Alterador, e não do Texto Alterado.</li>
<li>Ao usar a opção DVt, todas as datas de início de vigência serão reenquadradas para a data de vigência do dispositivo de vigência. Posteriormente, alterações manuais poderão ser feitas.</li>
<li>Ao fazer alterações de dispositivos, a opção DVt manipula automáticamente as datas de fim de vigência dos Dispositivos substituidos, ou seja, ao definir um Dispositivo de Vigência de um Dispositivo Alterado, automaticamente será encerrado a vigência de seu antecessor. O mesmo ocorre para dispositivos que possuem sucessores. </li>
<li>Após usar a opção DVt, alterações manuais poderão ser feitas no Editor Avançado e, não sendo usado novamente a opção Dvt, essas alterações manuais serão mantidas.</li>
</ol>
</li>
<li>A criação de Tipos de Dispositivos é dinâmica e deverão estar amarrados por perfis estuturais configuráveis. Por serem tarefas técnicas e complicadas, criar/editar tipos de dispositivos e perfis estuturais estão disponíveis apenas na área de edição técnica do SAPL (admin).
</li>
</ol>
<ul>
<li>As exclusões e inserções, quando acionadas, renumeram e redefinem os rótulos, tanto de dispositivos locais, quanto os DCC's.</li>
</ul>
<hr>
<h4>Exclusões</h4>
<ol>
<li>A exclusão de Dispositivos é um processo moroso e complicado, principalmente se o que está sendo excluido for, ou envolver, os DCC's - Dispositivos de Contagem Continua, como é o caso do Tipo de Dispositivo (Artigo), que é um tipo comum nos Textos Articulados Brasileiros.
As exclusões podem ser diretas, individuais ou em bloco:
<ol>
<li><strong>Diretas:</strong> Dispositivos que não possuam itens internos são excluidos diretamente.</li>
<li><strong>Individuais:</strong> Dispositivos que possuam itens internos e estes podem ser reenquadrados no Dispositivo imediatamente anterior
<ul>
<li>Ainda Não foi implementado a transferência de conteúdo na exclusão individual de DCC's que estão estruturalmente separados. Ex: Um artigo possui parágrafos, se seu artigo imediatamente anterior estiver no mesmo sub-grupo, esses parágrafos, na exclusão individual, serão transferidos para o artigo anterior, no entanto, se estiverem em sub-grupo separados, o artigo será completamente excluido como em uma exclusão em bloco.</li>
</ul>
</li>
<li><strong>Em Bloco:</strong> Todo o conteúdo incluído no Dispositivo em edição será excluído.</li>
</ol>
</li>
</ol>
<hr>
<h4>Edição Avançada</h4>
<ol>
<li>...
</li>
</ol>
{% endblocktrans %}
</div>
<divclass="modal-footer">
<buttontype="button"class="btn btn-default"data-dismiss="modal">{% trans "Fechar" %}</button>
{% if forloop.first and view|isinst:'DispositivoEditView' %}
{% if forloop.first and view|isinst:'DispositivoSimpleEditView' %}
{% else %}
<divclass="dpt"id="dpt{{dpt.pk}}"pk="{{dpt.pk}}">
{% endif%}
@ -22,16 +22,21 @@
<liclass="edt-textarea"><aclass="btn-top btn-action"pk="{{dpt.pk}}"action="refresh:textarea"title="{% trans 'Edição simples apenas do texto'%}">E</a></li>
<liclass="edt-tinymce"><aclass="btn-top btn-action"pk="{{dpt.pk}}"action="refresh:tinymce"title="{% trans 'Editar o texto com TinyMCE'%}">E+</a></li>
{%endif%}
<liclass="edt-detail"><aclass="btn-top btn-action"pk="{{dpt.pk}}"action="refresh:detail"title="{% trans 'TODO: Edição detalhada'%}">E*</a></li>
<liclass="edt-detail"><aclass="btn-top"href="{% url 'compilacao:dispositivo_edit' dpt.ta_id dpt.pk %}"title="{% trans 'Edição Avançada'%}">E*</a></li>
<liclass="edt-construct"><aclass="btn-top btn-action"pk="{{dpt.pk}}"action="refresh:construct"title="{% trans 'Construçao da estrutura do Texto Articulado'%}">C</a></li>
</ul>
<ulclass="btns-action actions_right">
<li><aclass="btn-right btn-action"pk="{{dpt.pk}}"action="set_dvt"title="{% trans 'Definir como Dispositivo de Vigência para todos os Dispositivos Originais deste Texto, bem como, dos Textos Anteriores alterados por este Texto!'%}">DVt</a></li>
{% comment %}
<li><aclass="btn-right btn-action"pk="{{dpt.pk}}"action="refresh"title="{% trans 'TODO: Reduzir nível do Dispositivo'%}">❬</a></li>
<li><aclass="btn-right btn-action"pk="{{dpt.pk}}"action="refresh"title="{% trans 'TODO: Aumentar nível do Dispositivo'%}">❭</a></li>
<li><aclass="btn-right btn-action"pk="{{dpt.pk}}"action="refresh"title="{% trans 'TODO: Subir uma posição'%}">↑</a></li>
<li><aclass="btn-right btn-action"pk="{{dpt.pk}}"action="refresh"title="{% trans 'TODO: Descer uma posição'%}">↓</a></li>
<li><aclass="btn-right btn-action"pk="{{dpt.pk}}"action="refresh"title="{% trans 'TODO: Subir uma posição com todos os subniveis'%}">⇈</a></li>
<li><aclass="btn-right btn-action"pk="{{dpt.pk}}"action="refresh"title="{% trans 'TODO: Descer uma posição com todos os subniveis'%}">⇊</a></li>
{% endcomment %}
</ul>
<ulclass="btns-action actions_left">
@ -46,13 +51,16 @@
<ulclass="actions_inserts {% if not dpt.tipo_dispositivo.dispositivo_de_articulacao %}menu_flutuante{%endif%}">
{% if dpt.dispositivo_subsequente == None %}
{% for inserts in view|select_provaveis_inserts:request %}
<li><ahref="#"class="btn-excluir btn-action"action="delete_item_dispositivo_todo"pk={{dpt.pk}}>TODO: Excluir apenas este dispositivo</a></li>
<li><ahref="#"class="btn-excluir btn-action"action="delete_bloco_dispositivo"pk={{dpt.pk}}>Excluir toda a estrutura deste dispositivo</a></li>
<li><ahref="#"class="btn-excluir btn-action"action="delete_item_dispositivo"pk={{dpt.pk}}>{% trans 'Excluir apenas este dispositivo'%}</a></li>
<li><ahref="#"class="btn-excluir btn-action"action="delete_bloco_dispositivo"pk={{dpt.pk}}>{% trans 'Excluir este dispositivo e toda sua estrutura'%}</a></li>
<liclass="{% if not view.inicio_vigencia%}active{% endif %}">
<ahref="{%url 'compilacao:ta_text' dispositivo.ta_id %}"title="{% trans 'Compilação atual'%}.
{% trans 'Vigência a partir de'%} {{dispositivo.inicio_vigencia}}
{% if dispositivo.ta_publicado_id in ta_pub_list %}{{ ta_pub_list|lookup:dispositivo.ta_publicado_id }}{%else%}{{dispositivo.ta_publicado}}{%endif%}">{% trans 'Texto Atual'%}</a>
<ahref="{%url 'compilacao:ta_text' dispositivo.ta_id %}"title="{% trans 'Compilação atual'%}.
{% trans 'Vigência a partir de'%} {{dispositivo.inicio_vigencia}}
{% if dispositivo.ta_publicado_id in ta_pub_list %}{{ ta_pub_list|lookup:dispositivo.ta_publicado_id }}{%else%}{%if dispositivo.ta_publicado %}{{dispositivo.ta_publicado}}{%else%}{{dispositivo.ta}}{%endif%}{%endif%}">{% trans 'Texto Atual'%}</a>
</li>
{% if forloop.parentloop.last %}
</ul>
{% if view.inicio_vigencia and view.fim_vigencia %}
<spanclass="vigencia-active">
{% blocktrans with inicio_vigencia=view.inicio_vigencia fim_vigencia=view.fim_vigencia ta_publicado=dispositivo.ta_publicado%}
{% if view.inicio_vigencia and view.fim_vigencia %}
{% blocktrans with inicio_vigencia=view.inicio_vigencia fim_vigencia=view.fim_vigencia%}
Vigência entre <b>{{inicio_vigencia}}</b> e <b>{{fim_vigencia}}</b>.
<br>
<small>Dada pela {{ta_publicado}}</small>
</span>
{% endblocktrans%}
{% else%}
<spanclass="vigencia-active">
{% blocktrans with inicio_vigencia=dispositivo.inicio_vigencia ta_publicado=dispositivo.ta_publicado%}
{% blocktrans with inicio_vigencia=dispositivo.inicio_vigencia%}
Vigência a partir de <b>{{inicio_vigencia}}</b>.
<br>
<small>Dada pela {{ta_publicado}}</small>
{% endblocktrans%}
</span>
{% endif %}
<br>
{% if view.ta_vigencia %}
<small>{% trans 'Dada por '%}<ahref="{%url 'compilacao:ta_text' view.ta_vigencia %}">{{ta_pub_list|lookup:view.ta_vigencia}}</a></small>
{% elif view.ta_vigencia != 0 %}
<small>{% trans 'Dada por '%}<ahref="{%url 'compilacao:ta_text' dispositivo.ta_publicado.pk %}">{{dispositivo.ta_publicado}}</a></small>
{% endif %}
</span>
{% endif%}
{% endfor %}
{% else %}
@ -74,7 +75,7 @@
{% for dispositivo in values %}
<li>
{% if not forloop.parentloop.first %}
<ahref="{%url 'compilacao:ta_vigencia' dispositivo.ta_id dispositivo|get_sign_vigencia %}"title="{% if dispositivo.ta_publicado_id in ta_pub_list%}{{ ta_pub_list|lookup:dispositivo.ta_publicado_id }}{%else%}{{dispositivo.ta_publicado}}{%endif%}">{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}</a>
<ahref="{%url 'compilacao:ta_vigencia' dispositivo.ta_id dispositivo|get_sign_vigencia %}"title="{% if dispositivo.ta_publicado_id in ta_pub_list%}{{ ta_pub_list|lookup:dispositivo.ta_publicado_id }}{%else%}{%if dispositivo.ta_publicado %}{{dispositivo.ta_publicado}}{%else%}{{dispositivo.ta}}{%endif%}{%endif%}">{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}</a>
{% endif %}
</li>
{% endfor %}
@ -86,7 +87,7 @@
<ulclass="tipo-vigencias">
<li><aclass="selected"onclick="textoMultiVigente(this, false);"title="{% trans 'Texto Multivigente Sequencial'%}">{% trans 'TMS'%}</a></li>
<li><aonclick="textoMultiVigente(this, true);"title="{% trans 'Texto Multivigente Integrado com Realce de Alterações'%}">{% trans 'TMI'%}</a></li>
<li><aonclick="textoVigente(this, true);"title="{% trans 'Texto Vigente COM Links para Textos Alteradores'%}">{% trans 'TVL'%}</a></li>
<li><aonclick="textoMultiVigente(this, false); textoVigente(this, true);"title="{% trans 'Texto Vigente COM Links para Textos Alteradores'%}">{% trans 'TVL'%}</a></li>
<li><aonclick="textoVigente(this, false);"title="{% trans 'Texto Vigente'%}">{% trans 'TVT'%}</a></li>