Browse Source

style sheet refactoring and rewriting in sass

pull/10/head
LeandroRoberto 9 years ago
parent
commit
a2d0ffdb8f
  1. 31
      compilacao/models.py
  2. 23
      compilacao/templatetags/compilacao_filters.py
  3. 24
      compilacao/views.py
  4. 3
      sapl/settings.py
  5. 117
      static/js/compilacao.js
  6. 1199
      static/styles/compilacao.scss
  7. 1
      templates/base.html
  8. 9
      templates/compilacao/edit.html
  9. 186
      templates/compilacao/edit_bloco.html
  10. 10
      templates/compilacao/edit_bloco_alteracao.html
  11. 46
      templates/compilacao/index.html
  12. 46
      templates/compilacao/index_bloco.html
  13. 10
      templates/compilacao/index_bloco_alteracao.html

31
compilacao/models.py

@ -1,3 +1,5 @@
from datetime import datetime
from django.contrib.auth.models import User
from django.db import models
from django.db.models import F
@ -694,15 +696,21 @@ class Dispositivo(BaseModel):
filho.save()
filho.organizar_niveis()
def get_parents(self):
def get_parents(self, ordem='desc'):
dp = self
p = []
while dp.dispositivo_pai is not None:
dp = dp.dispositivo_pai
p.append(dp)
if ordem == 'desc':
p.append(dp)
else:
p.insert(0, dp)
return p
def get_parents_asc(self):
return self.get_parents(ordem='asc')
def recalcular_ordem(self):
try:
dispositivos = Dispositivo.objects.order_by('-ordem').filter(
@ -715,6 +723,25 @@ class Dispositivo(BaseModel):
d.save()
ordem -= 1000
@staticmethod
def init_with_base(dispositivo_base, tipo_base):
dp = Dispositivo()
dp.tipo_dispositivo = tipo_base
dp.set_numero_completo(
dispositivo_base.get_numero_completo())
dp.nivel = dispositivo_base.nivel
dp.texto = ''
dp.norma = dispositivo_base.norma
dp.dispositivo_pai = dispositivo_base.dispositivo_pai
dp.inicio_eficacia = dispositivo_base.inicio_eficacia
dp.inicio_vigencia = dispositivo_base.inicio_vigencia
dp.publicacao = dispositivo_base.publicacao
dp.timestamp = datetime.now()
return dp
class Vide(models.Model):
data_criacao = models.DateTimeField(verbose_name=_('Data de Criação'))

23
compilacao/templatetags/compilacao_filters.py

@ -42,8 +42,7 @@ def dispositivo_desativado(dispositivo, inicio_vigencia, fim_vigencia):
@register.simple_tag
def nota_automatica(dispositivo):
if dispositivo.norma_publicada is not None and \
dispositivo.tipo_dispositivo.class_css != 'artigo':
if dispositivo.norma_publicada is not None:
d = dispositivo.dispositivo_atualizador.dispositivo_pai
if dispositivo.texto == Dispositivo.TEXTO_PADRAO_DISPOSITIVO_REVOGADO:
return 'Revogado pelo %s.' % d
@ -92,6 +91,26 @@ def render_actions_head(view, d_atual):
return False
@register.filter
def short_string(str, length):
if len(str) > length:
return str[:length]+'...'
else:
return str
@register.filter
def nomenclatura(d):
result = ''
if d.rotulo != '':
if d.tipo_dispositivo.rotulo_prefixo_texto != '':
result = d.rotulo
else:
result = '(' + d.tipo_dispositivo.nome + ' ' + \
d.rotulo + ')'
else:
result = '(' + d.tipo_dispositivo.nome + \
d.rotulo_padrao() + ')'
return result
@register.simple_tag
def nomenclatura_heranca(d):

24
compilacao/views.py

@ -1,3 +1,5 @@
from collections import OrderedDict
from datetime import timedelta, datetime
from os.path import sys
@ -389,13 +391,16 @@ class DispositivoEditView(CompilacaoEditView, FormMixin):
else:
d_base = Dispositivo.objects.get(pk=self.pk_add)
result = [{'tipo_insert': '↷  Inserir Depois',
result = [{'tipo_insert': 'Inserir Depois',
'icone': '↷ ',
'action': 'add_next',
'itens': []},
{'tipo_insert': '⇲  TODO: Inserir Dentro',
{'tipo_insert': 'Inserir Dentro',
'icone': '⇲ ',
'action': 'add_in',
'itens': []},
{'tipo_insert': '↶  TODO: Inserir Antes',
{'tipo_insert': 'Inserir Antes',
'icone': '↶ ',
'action': 'add_prior',
'itens': []}
]
@ -603,11 +608,10 @@ class ActionsEditMixin(object):
if dp.dispositivo_pai is not None or \
tipo.class_css == 'articulacao':
dpbase = dp
dp = Dispositivo.init_with_base(dpbase, tipo)
dp.transform_in_next(variacao)
dp.rotulo = dp.rotulo_padrao()
dp.texto = ''
dp.pk = None
dp.norma_publicada = None
if dp.tipo_dispositivo.class_css == 'artigo':
ordem = base.criar_espaco_apos(espaco_a_criar=2)
@ -732,10 +736,8 @@ class ActionsEditMixin(object):
else:
break
dp.tipo_dispositivo = tipo
dp.pk = None
dp.norma_publicada = None
dpaux = dp
dp = Dispositivo.init_with_base(dpaux, tipo)
if tipo.contagem_continua:
ultimo_irmao = Dispositivo.objects.order_by(
@ -767,7 +769,7 @@ class ActionsEditMixin(object):
tipo_dispositivo_id=tipo.pk)
''' inserção sem precedente é feita sem variação
portanto, não deve ser usado o transform_next() para
portanto, não é necessário usar transform_next() para
incrementar, e sim, apenas somar no atributo dispositivo0
dada a possibilidade de existir irmãos com viariação'''
for irmao in irmaos:

3
sapl/settings.py

@ -60,7 +60,8 @@ INSTALLED_APPS = (
'sass_processor',
)
if DEBUG:
INSTALLED_APPS += ('debug_toolbar',)
#INSTALLED_APPS += ('debug_toolbar',)
pass
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',

117
static/js/compilacao.js

@ -1,16 +1,14 @@
$(document).ready(function() {
var flag_add_next = false
var flag_add_next_pk = 0
var flag_add_next_pai = 0
var flag_add_next = false;
var flag_add_next_pk = 0;
var flag_add_next_pai = 0;
var withTinymce = false
var editortype = "construct";
var onSubmitEditForm = function(event) {
var texto = ''
var editorTiny = tinymce.get('editdi_texto')
var texto = '';
var editorTiny = tinymce.get('editdi_texto');
if (editorTiny != null)
texto = editorTiny.getContent();
@ -21,27 +19,28 @@ var onSubmitEditForm = function(event) {
'csrfmiddlewaretoken' : $('input[name=csrfmiddlewaretoken]').val(),
'texto' : texto
};
var url = $('.editdi_form form').attr( "action_ajax" );
var url = $('.csform form').attr( "action_ajax" );
$("#message_block").css("display", "block");
$.post(url,formData)
.done(function(data) {
$('.editselected').html(data);
$('.dpt-selected').html(data);
clearEditSelected();
reloadFunctionClicks();
}).always(function() {
$("#message_block").css("display", "none");
});
event.preventDefault();
});
if (event != null)
event.preventDefault();
}
var clickEditDispositivo = function(event) {
var clickEditDispositivo = function(event) {
var _pk = event.currentTarget.getAttribute('pk');
if ($('#de'+_pk).hasClass("editselected")) {
if ($('#dpt'+_pk).hasClass("dpt-selected")) {
clearEditSelected();
return;
}
clearEditSelected();
clickUpdateDispositivo(event)
clickUpdateDispositivo(event);
}
var clickUpdateDispositivo = function(event, __pk, __action, addeditselected) {
@ -64,15 +63,16 @@ var clickUpdateDispositivo = function(event, __pk, __action, addeditselected) {
var url = ''
if (_action == '')
return
else if ( _action == null || _action.startsWith('refresh')) {
else if ( _action == null)
url = _pk+'/refresh?pkadd='+flag_add_next_pk;
else if (_action.startsWith('refresh')) {
if (_action != null && _action.endsWith('tinymce'))
withTinymce = true;
else if (_action != null && _action.endsWith('textarea'))
withTinymce = false;
var str = _action.split(':');
if (str.length > 1) {
editortype = str[1];
}
url = _pk+'/refresh?pkadd='+flag_add_next_pk+url;
}
else {
url = _pk+'/actions?action='+_action;
@ -86,32 +86,41 @@ var clickUpdateDispositivo = function(event, __pk, __action, addeditselected) {
$.get(url).done(function( data ) {
if ( _action == null || _action.startsWith('refresh')) {
if (flag_add_next) {
if (addeditselected)
clearEditSelected();
$( '#de' + _pk ).html( data);
$( '#dpt' + _pk ).html( data);
flag_add_next = false
}
}
else {
clearEditSelected();
$( '#de' + _pk ).prepend( data );
$( '#dpt' + _pk ).prepend( data );
}
reloadFunctionClicks();
if ( withTinymce ) {
initTinymce()
if ( editortype == 'tinymce' ) {
initTinymce();
}
else if (editortype == 'textarea') {
$('.csform form').submit(onSubmitEditForm);
}
else {
$('.editdi_form form').submit(onSubmitEditForm);
else if (editortype == 'construct') {
$('.csform .btn-salvar, .csform textarea').remove();
// $('#dpt'+flag_add_next_pk).css('min-height', $('.actions_right').height()*1.35 );
$('.actions_inserts').addClass('menu_fixo');
}
$(".edt-"+editortype).addClass('selected');
/*if (_action != null && _action != 'refresh')
$("a.btn-action[pk='"+_pk+"']").css('background-color', '#000000');
*/
if (addeditselected == null || addeditselected) {
$('#de'+flag_add_next_pk).addClass('editselected');
$('#dpt'+flag_add_next_pk).addClass('dpt-selected');
$('html, body').animate({
scrollTop: $('#de' + flag_add_next_pk ).offset().top - window.innerHeight / 10
scrollTop: $('#dpt' + flag_add_next_pk ).offset().top - window.innerHeight / 10
}, 300);
flag_add_next_pk = 0;
}
@ -123,7 +132,7 @@ var clickUpdateDispositivo = function(event, __pk, __action, addeditselected) {
flag_add_next_pk = data.pk;
flag_add_next_pai = data.pai;
if (flag_add_next_pk != null)
for (var pai = 0; pai < flag_add_next_pai.length; pai++)
if (flag_add_next_pai[pai] != -1) {
@ -150,33 +159,34 @@ var clickUpdateDispositivo = function(event, __pk, __action, addeditselected) {
function clearEditSelected() {
tinymce.remove();
$('.editselected').removeClass('editselected');
$('.editdi_form').remove();
$('.editselected .label_pai, .edit .label_pai').remove();
$('.editselected .actions_head, .edit .actions_head').remove();
$('.editselected .actions_footer, .edit .actions_footer').remove();
$('.dpt-selected').removeClass('dpt-selected');
$('.csform').remove();
}
function reloadFunctionClicks() {
$('.dispositivo .edit .di').off();
$('.actions .btn-action').off();
$('.actions_head .btn-action').off();
$('.dispositivo .edit .di').on('click', clickEditDispositivo);
$('.actions .btn-action').on('click', clickEditDispositivo);
$('.actions_head .btn-action').on('click', clickUpdateDispositivo);
function reloadFunctionClicks() {
$('.dpt .de, .btn-action, .btn-inserts').off();
$('.dpt .de, .btn-edit').on(
'click', clickEditDispositivo);
$('.btn-action, .btn-inserts').on(
'click', clickUpdateDispositivo);
$('#editdi_texto').focus();
}
function initTinymce() {
tinymce.init({
mode : "textareas",
tinymce.init({
mode : "textareas",
force_br_newlines : false,
force_p_newlines : false,
forced_root_block : '',
plugins: ["table save code"],
menubar: "edit format table tools",
toolbar: "save | undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent",
tools: "inserttable",
tools: "inserttable",
save_onsavecallback: onSubmitEditForm,
border_css: "/static/styles/compilacao_tinymce.css",
content_css: "/static/styles/compilacao_tinymce.css"
@ -184,8 +194,11 @@ function initTinymce() {
}
reloadFunctionClicks();
$("#message_block").css("display", "none");
$(document).ready(function() {
});
reloadFunctionClicks();
$("#message_block").css("display", "none");
clickUpdateDispositivo(null, 64941, 'refresh', true);
});

1199
static/styles/compilacao.scss

File diff suppressed because it is too large

1
templates/base.html

@ -19,7 +19,6 @@
<link rel="stylesheet" href="{% static 'components-font-awesome/css/font-awesome.css' %}">
<link rel="stylesheet" href="{% static 'foundation-icon-fonts/foundation-icons.css' %}">
<link rel="stylesheet" href="{% sass_src 'styles/app.scss' %}" type="text/css">
<link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css">
{# Scripts #}
{# modernizr must be in head (see http://modernizr.com/docs/#installing) #}

9
templates/compilacao/edit.html

@ -1,24 +1,25 @@
{% extends "base.html" %}
{% load i18n %}
{% load compilacao_filters %}
{% load staticfiles %}
{% load staticfiles %}
{% load sass_tags %}
{% block head_content %}{{block.super}}
<link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css">
<script type="text/javascript" src="{% static 'js/compilacao.js' %}"></script>
{% endblock %}
{% block title%}
<h1><b>Edição:</b> {{ view.get_norma }} - <i>{% trans 'Texto Multivigente' %}</i></h1>
{% endblock %}
{% block base_content %}
{% block base_content %}
<div id="message_block"><div id="msg">{% trans 'Aguarde... Atualizando informações!!!'%}</div></div>
<div class="compilacaoedit">
<div class="cpe">
{% include 'compilacao/edit_bloco.html'%}
</div>
{% endblock base_content %}

186
templates/compilacao/edit_bloco.html

@ -1,112 +1,120 @@
{% load i18n %}
{% load compilacao_filters %}
{% load compilacao_filters %}
{% for dispositivo in object_list %}
{% if dispositivo.nivel == view.flag_nivel_old %}
</div>
{% elif dispositivo.nivel < view.flag_nivel_old %}
{% close_div view.flag_nivel_old dispositivo.nivel 0 %}
{% for dpt in object_list %}
{% if dpt.nivel == view.flag_nivel_old %}
</div>
{% elif dpt.nivel < view.flag_nivel_old %}
{% close_div view.flag_nivel_old dpt.nivel 0 %}
{% endif%}
{% if forloop.first and view|isinst:'DispositivoEditView' %}
{% else %}
<div class="dispositivo edit" id="de{{dispositivo.pk}}" pk="{{dispositivo.pk}}">
<div class="dpt" id="dpt{{dpt.pk}}" pk="{{dpt.pk}}">
{% endif%}
{% if view|render_actions_head:dpt %}
<div class="csform">
<form method="post" action="" action_ajax="{{dpt.pk}}/refresh">
<ul class="btns-action actions_top">
<li class="edt-construct"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:construct" title="{% trans 'Construçao da estrutura da Norma'%}">C</a></li>
{% if not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<li class="edt-textarea"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:textarea" title="{% trans 'Edição simples apenas do texto'%}">E</a></li>
<li class="edt-tinymce"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:tinymce" title="{% trans 'Editar o texto com TinyMCE'%}">E+</a></li>
<li class="edt-detail"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:detail" title="{% trans 'TODO: Edição detalhada'%}">E*</a></li>
{%endif%}
</ul>
<ul class="btns-action actions_right">
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Reduzir nível do Dispositivo'%}">&#10092;</a></li>
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Aumentar nível do Dispositivo'%}">&#10093;</a></li>
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Subir uma posição'%}">&#8593;</a></li>
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Descer uma posição'%}">&#8595;</a></li>
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Subir uma posição com todos os subniveis'%}">&#8648;</a></li>
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Descer uma posição com todos os subniveis'%}">&#8650;</a></li>
</ul>
{% if view|render_actions_head:dispositivo %}
<div class="editdi_form">
<form method="post" action="" action_ajax="{{dispositivo.pk}}/refresh">
<ul class="actions_head {% if dispositivo.tipo_dispositivo.dispositivo_de_articulacao %}actions_insert{%endif%}">
{% if not dispositivo.tipo_dispositivo.dispositivo_de_articulacao %}
<li class=""><a class="btn-action" pk="{{dispositivo.pk}}" action="refresh:detail" title="TODO: Edição detalhada">E*</a></li>
<li class=""><a class="btn-action" pk="{{dispositivo.pk}}" action="refresh:tinymce" title="Editar o texto com TinyMCE">E+</a></li>
<li class=""><a class="btn-action" pk="{{dispositivo.pk}}" action="refresh:textarea" title="Edição simples apenas do texto">E</a></li>
{%endif%}
</ul>
<ul class="actions_right {% if dispositivo.tipo_dispositivo.dispositivo_de_articulacao %}actions_insert{%endif%}">
<li class="right clear"><a class="btn-action" pk="{{dispositivo.pk}}" action="refresh" title="TODO: Reduzir nível do Dispositivo">&#10092;</a></li>
<li class="right clear"><a class="btn-action" pk="{{dispositivo.pk}}" action="refresh" title="TODO: Aumentar nível do Dispositivo">&#10093;</a></li>
<li class="right clear"><a class="btn-action" pk="{{dispositivo.pk}}" action="refresh" title="TODO: Descer uma posição">&#8595;</a></li>
<li class="right clear"><a class="btn-action" pk="{{dispositivo.pk}}" action="refresh" title="TODO: Subir uma posição">&#8593;</a></li>
<li class="right clear"><a class="btn-action" pk="{{dispositivo.pk}}" action="refresh" title="TODO: Subir uma posição com todos os subniveis">&#8648;</a></li>
<li class="right clear"><a class="btn-action" pk="{{dispositivo.pk}}" action="refresh" title="TODO: Descer uma posição com todos os subniveis">&#8650;</a></li>
</ul>
{% if not dispositivo.tipo_dispositivo.dispositivo_de_articulacao %}
{% csrf_token %}
<textarea id="editdi_texto" name="texto" rows="7">{{ dispositivo.texto|safe }}</textarea>
{%endif%}
<ul class="actions_inserts {% if dispositivo.texto == ''%}actions_insert{%endif%}">
{% for inserts in view.select_provaveis_inserts%}
<li class="left" ><a class="btn-inserts" action="" pk="{{dispositivo.pk}}">{{inserts|get_field:'tipo_insert'|safe}}</a>
<ul id="afe{{dispositivo.id}}" >
{% for item in inserts|get_field:'itens' %}
<li><a class="btn-inserts" action="{{inserts|get_field:'action'}}" pk="{{item|get_field:'dispositivo_base'}}" variacao="{{item|get_field:'variacao'}}" tipo_pk="{{item|get_field:'tipo_pk'}}">{{item|get_field:'provavel'}}</a></li>
{% endfor %}
</ul>
</li>
{% endfor %}
{% if not dispositivo.tipo_dispositivo.dispositivo_de_articulacao %}
<li class="right"><input type="submit" value="Salvar" class="button primary btn-action" /></li>
{%endif%}
<li class="right"><a href="#" class="button alert">Excluir</a></li>
<ul class="btns-action actions_bottom">
<li><a class="btn-bottom btn-action" pk="{{dpt.pk}}" title="Button Bottom">BB</a></li>
</ul>
<ul class="btns-action actions_left">
<li><a class="btn-left btn-action" pk="{{dpt.pk}}" title="Button Left">BL</a></li>
</ul>
<ul class="btns-action actions_inserts {% if dpt.tipo_dispositivo.dispositivo_de_articulacao %}menu_fixo{%endif%}">
{% if dpt.dispositivo_subsequente == None %}
{% for inserts in view.select_provaveis_inserts%}
<li class="{{inserts|get_field:'action'}}"><a class="btn-inserts" action="" pk="{{dpt.pk}}">{{inserts|get_field:'icone'|safe}}<span>{{inserts|get_field:'tipo_insert'}}</span></a>
<ul id="afe{{dpt.id}}" >
{% for item in inserts|get_field:'itens' %}
<li><a class="btn-inserts" action="{{inserts|get_field:'action'}}" pk="{{item|get_field:'dispositivo_base'}}" variacao="{{item|get_field:'variacao'}}" tipo_pk="{{item|get_field:'tipo_pk'}}">{{item|get_field:'provavel'}}</a></li>
{% endfor %}
</ul>
</li>
{% endfor %}
{%endif%}
<li><a href="#" class="btn-excluir">&nbsp;<span>Excluir</span></a></li>
{% if not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<li><a onclick="onSubmitEditForm()" class="btn-salvar">&nbsp<span>Salvar</span></a></li>
{%endif%}
</ul>
{% if not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
{% csrf_token %}
<textarea id="editdi_texto" placeholder="{% trans "Insirir o texto do dispositivo aqui... Use, nos menus das bordas de edição, 'E+' ou 'E*' para outras opções de editores."%}" name="texto" rows="7">{{ dpt.texto|safe }}</textarea>
{%endif%}
<div class="label_status" >
<div>Ordem: {{dpt.ordem}}, Nivel: {{dpt.nivel}}, Número: {{dpt.get_numero_completo}}</div>
</div>
<ul class="btns-action actions_parents">
<div>Em Edição:</div>
{%for parent in dpt.get_parents_asc %}
<li><a action="refresh" pk="{{parent.pk}}" ordem="{{parent.ordem}}" name="{{parent.pk}}" title="{{parent.texto|short_string:50}}" class="btn-parents btn-action">{{parent|nomenclatura}}</a></li>
{%endfor %}
<li><a action="refresh" pk="{{dpt.pk}}" ordem="{{dpt.ordem}}" name="{{dpt.pk}}" title="{{dpt.texto|short_string:50}}" class="btn-parents btn-action">{{dpt|nomenclatura}}</a></li>
</ul>
</form>
</div>
<div class="actions_footer" >
<div class="left">Ordem: {{dispositivo.ordem}}, nivel: {{dispositivo.nivel}}</div>
<div class="right">Número: {{dispositivo.get_numero_completo}}</div>
</div>
<div class="label_pai">
<div class="left">Em Edição: {% nomenclatura_heranca dispositivo %} </div>
<div class="right"></div>
</div>
{% endif%}
{% endif%}
{% if view.pk_view == 0 and view.pk_add == 0 or view.pk_add != view.pk_view %}
<div class="actions">
<a class="btn-inserts" pk="{{dispositivo.pk}}" title="Edição do dispositivo: {{ dispositivo.tipo_dispositivo.nome }} {{ dispositivo.rotulo }}">E</a>
<div class="btns-action actions_left">
<a class="btn-edit" pk="{{dpt.pk}}" title="Edição do dispositivo: {{ dpt.tipo_dispositivo.nome }} {{ dpt.rotulo }}">E</a>
</div>
<div class="editdi {% dispositivo_desativado dispositivo view.inicio_vigencia view.fim_vigencia %} {{ dispositivo.tipo_dispositivo.class_css }}">
{% spaceless %}
<a class="di" id="id{{dispositivo.id}}" pk="{{dispositivo.pk}}" ordem="{{dispositivo.ordem}}" name="{{dispositivo.pk}}" title="{{dispositivo.pk}}">
{{ dispositivo.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ dispositivo.rotulo }}{{ dispositivo.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ dispositivo.tipo_dispositivo.texto_prefixo_html|safe }}
{% if dispositivo.texto == '' and not dispositivo.tipo_dispositivo.dispositivo_de_articulacao %}<span class="semtexto">({{dispositivo.tipo_dispositivo}} sem texto)</span>{%else%}{{ dispositivo.texto|safe }}{%endif%}
</a>
{% if dispositivo.norma_publicada_id != None %}
<a class="link_alterador" href="{%url 'compilacao' dispositivo.norma_publicada.pk %}#{{dispositivo.dispositivo_atualizador_id}}">
{{ dispositivo.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
{% nota_automatica dispositivo %}
{{ dispositivo.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
</a>
{% endif %}
{% endspaceless %}
{% if view.is_norma_alteradora and dispositivo.tipo_dispositivo.class_css == 'bloco_alteracao'%}
{%with node=dispositivo template_name='compilacao/edit_bloco_alteracao.html' %}
<div class="bloco {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %} {{ dpt.tipo_dispositivo.class_css }}">
{% spaceless %}
<a class="de" id="id{{dpt.id}}" pk="{{dpt.pk}}" ordem="{{dpt.ordem}}" name="{{dpt.pk}}" title="{{dpt.pk}}">
{{ 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 %}<span class="semtexto">({{dpt.tipo_dispositivo}} sem texto)</span>{%else%}{{ dpt.texto|safe }}{%endif%}
</a>
{% if dpt.norma_publicada_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<a class="link_alterador" href="{%url 'compilacao' dpt.norma_publicada.pk %}#{{dpt.dispositivo_atualizador_id}}">
{{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
{% nota_automatica dpt %}
{{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
</a>
{% endif %}
{% endspaceless %}
{% if view.is_norma_alteradora and dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}
{%with node=dpt template_name='compilacao/edit_bloco_alteracao.html' %}
{%include template_name%}
{%endwith%}
{%endwith%}
{% endif%}
</div>
{% endif%}
{% set_nivel_old view dispositivo.nivel %}
{% set_nivel_old view dpt.nivel %}
{% endfor %}
{% if view|isinst:'DispositivoEditView' %}
{% close_div view.flag_nivel_old view.flag_nivel_ini -1 %}
{% close_div view.flag_nivel_old view.flag_nivel_ini -1 %}
{% else %}
{% close_div view.flag_nivel_old view.flag_nivel_ini 0 %}
{% endif%}
{% close_div view.flag_nivel_old view.flag_nivel_ini 0 %}
{% endif%}

10
templates/compilacao/edit_bloco_alteracao.html

@ -1,10 +1,10 @@
{% load compilacao_filters %}
{% for ch in dispositivo.pk|get_bloco_atualizador %}
{% for ch in dpt.pk|get_bloco_atualizador %}
{% spaceless %}
<div class="dispositivo" id="d{{ch.id}}">
<div class="dpt" id="d{{ch.id}}">
<div class="{{ ch.tipo_dispositivo.class_css }}" id="id{{ch.id}}" nivel="{{ch.nivel}}">
{{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{ch.pk}}" href="{%url 'compilacao' ch.norma.pk %}#{{ch.pk}}">{{ ch.rotulo }}</a>{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }}
</div>
{{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{ch.pk}}" href="{%url 'compilacao' ch.norma.pk %}#{{ch.pk}}">{{ ch.rotulo }}</a>{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }}
</div>
</div>
{% endspaceless %}
{% endfor %}
{% endfor %}

46
templates/compilacao/index.html

@ -1,31 +1,39 @@
{% extends "base.html" %}
{% load i18n %}
{% load compilacao_filters %}
{% load staticfiles %}
{% load sass_tags %}
{% block head_content %}{{block.super}}
<link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css">
<script type="text/javascript" src="{% static 'js/compilacao.js' %}"></script>
{% endblock %}
{% block title%}
<h1>{{ view.get_norma }}</h1>
{% endblock %}
{% block base_content %}
{% block base_content %}
<script type="text/javascript">
$( window ).scroll(function() {
if (window.pageYOffset <= 180)
$( "section.vigencias" ).removeClass("fixed");
else if (!$( "section.vigencias" ).hasClass("fixed"))
$( "section.vigencias" ).addClass("fixed");
$( "section.vigencias" ).addClass("fixed");
});
$(window).load(function() {
setTimeout(function() {
height = $( "section.vigencias" ).height();
height = $( "section.vigencias" ).height();
$('html, body').animate({
scrollTop: window.pageYOffset - height - 36
}, 300);
scrollTop: window.pageYOffset - height - 37
}, 300);
}, 100);
});
function textoMultiVigente(item) {
$(".compilacao .tipo-vigencias a").removeClass("selected")
$(item).addClass("selected")
@ -44,11 +52,11 @@ function textoVigente(item, link) {
$(document).ready(function() {
$("#btn_font_menos").click(function() {
$(".dispositivo").css("font-size", "-=1");
});
$("#btn_font_mais").click(function() {
$(".dispositivo").css("font-size", "+=1");
});
});
@ -56,7 +64,7 @@ $(document).ready(function() {
</script>
<div class="compilacao">
<div class="cp">
<div style="float: right; clear:right;">
@ -65,11 +73,11 @@ $(document).ready(function() {
</div>
{% for key, values in view.get_vigencias.items %}
{% if forloop.first %}
{% if forloop.first %}
<section class="vigencias">
<nav class="top-bar" data-topbar="" role="navigation">
<section class="top-bar-section">
<ul class="nav left">
<ul class="nav left">
{%endif%}
<li class="nav__item has-dropdown">
{% if forloop.first %}
@ -82,11 +90,11 @@ $(document).ready(function() {
{% endfor %}
{% else %}
<a class="nav__link {% if view.inicio_vigencia.year == key %}selected{%endif%}">{{ key }}</a>
{%endif%}
{% if not forloop.first and not forloop.last %}
{% if not forloop.first and not forloop.last %}
<ul class="nav__sub-nav dropdown">
{% for dispositivo in values %}
<li class="nav__sub-item">
@ -100,10 +108,10 @@ $(document).ready(function() {
</li>
{% if forloop.last %}
</ul>
<ul class="nav left tipo-vigencias">
<li><a class="selected" onclick="textoMultiVigente(this);">{% trans 'Texto Multivigente'%}</a></li>
<li><a onclick="textoVigente(this, true);">{% trans 'Texto Vigente COM Links para Normas Alteradoras'%}</a></li>
<li><a onclick="textoVigente(this, false);">{% trans 'Texto Vigente SEM Links para Normas Alteradoras'%}</a></li>
<ul class="nav left tipo-vigencias">
<li><a class="selected" onclick="textoMultiVigente(this);">{% trans 'Texto Multivigente'%}</a></li>
<li><a onclick="textoVigente(this, true);">{% trans 'Texto Vigente COM Links para Normas Alteradoras'%}</a></li>
<li><a onclick="textoVigente(this, false);">{% trans 'Texto Vigente SEM Links para Normas Alteradoras'%}</a></li>
</ul>
</section>
</nav>
@ -120,4 +128,4 @@ $(document).ready(function() {
{% include 'compilacao/index_bloco.html'%}
</div>
{% endblock base_content %}
{% endblock base_content %}

46
templates/compilacao/index_bloco.html

@ -1,30 +1,30 @@
{% load i18n %}
{% load compilacao_filters %}
{% load compilacao_filters %}
{% for dispositivo in object_list %}
{% if dispositivo.nivel == view.flag_nivel_old %}
</div>
{% elif dispositivo.nivel < view.flag_nivel_old %}
{% close_div view.flag_nivel_old dispositivo.nivel 0 %}
{% for dpt in object_list %}
{% if dpt.nivel == view.flag_nivel_old %}
</div>
{% elif dpt.nivel < view.flag_nivel_old %}
{% close_div view.flag_nivel_old dpt.nivel 0 %}
{% endif%}
<div class="dispositivo {% dispositivo_desativado dispositivo view.inicio_vigencia view.fim_vigencia %}" id="d{{dispositivo.id}}">
<div class="{{ dispositivo.tipo_dispositivo.class_css }}" id="id{{dispositivo.id}}">
{% spaceless %}
{{ dispositivo.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{dispositivo.pk}}" title="{{dispositivo.pk}}">{{ dispositivo.rotulo }}</a>{{ dispositivo.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ dispositivo.tipo_dispositivo.texto_prefixo_html|safe }}{{ dispositivo.texto|safe }}
{% if dispositivo.norma_publicada_id != None %}
<a class="link_alterador" href="{%url 'compilacao' dispositivo.norma_publicada.pk %}#{{dispositivo.dispositivo_atualizador_id}}">
{{ dispositivo.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
{% nota_automatica dispositivo %}
{{ dispositivo.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
</a>
{% endif %}
{% endspaceless %}
{% if view.is_norma_alteradora and dispositivo.tipo_dispositivo.class_css == 'bloco_alteracao'%}
{%with node=dispositivo template_name='compilacao/index_bloco_alteracao.html' %}
<div class="dpt {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %}" id="d{{dpt.id}}">
<div class="{{ dpt.tipo_dispositivo.class_css }}" id="id{{dpt.id}}">
{% spaceless %}
{{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{dpt.pk}}" title="{{dpt.pk}}">{{ dpt.rotulo }}</a>{{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}{{ dpt.texto|safe }}
{% if dpt.norma_publicada_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<a class="link_alterador" href="{%url 'compilacao' dpt.norma_publicada.pk %}#{{dpt.dispositivo_atualizador_id}}">
{{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
{% nota_automatica dpt %}
{{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
</a>
{% endif %}
{% endspaceless %}
{% if view.is_norma_alteradora and dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}
{%with node=dpt template_name='compilacao/index_bloco_alteracao.html' %}
{%include template_name%}
{%endwith%}
{%endwith%}
{% endif%}
</div>
{% set_nivel_old view dispositivo.nivel %}
{% set_nivel_old view dpt.nivel %}
{% endfor %}
{% close_div view.flag_nivel_old view.flag_nivel_ini 0 %}
{% close_div view.flag_nivel_old view.flag_nivel_ini 0 %}

10
templates/compilacao/index_bloco_alteracao.html

@ -1,10 +1,10 @@
{% load compilacao_filters %}
{% for ch in dispositivo.pk|get_bloco_atualizador %}
{% for ch in dpt.pk|get_bloco_atualizador %}
{% spaceless %}
<div class="dispositivo" id="d{{ch.id}}">
<div class="dpt" id="d{{ch.id}}">
<div class="{{ ch.tipo_dispositivo.class_css }}" id="id{{ch.id}}" nivel="{{ch.nivel}}">
{{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{ch.pk}}" href="{%url 'compilacao' ch.norma.pk %}#{{ch.pk}}">{{ ch.rotulo }}</a>{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }}
</div>
{{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{ch.pk}}" href="{%url 'compilacao' ch.norma.pk %}#{{ch.pk}}">{{ ch.rotulo }}</a>{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }}
</div>
</div>
{% endspaceless %}
{% endfor %}
{% endfor %}

Loading…
Cancel
Save