diff --git a/compilacao/models.py b/compilacao/models.py index d208d283b..35c1d14d0 100644 --- a/compilacao/models.py +++ b/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')) diff --git a/compilacao/templatetags/compilacao_filters.py b/compilacao/templatetags/compilacao_filters.py index 6ff84b0e2..ed28d24dc 100644 --- a/compilacao/templatetags/compilacao_filters.py +++ b/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): diff --git a/compilacao/views.py b/compilacao/views.py index 49c1423a7..edc393ab0 100644 --- a/compilacao/views.py +++ b/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: diff --git a/sapl/settings.py b/sapl/settings.py index 52d0b2b53..0ebf07620 100644 --- a/sapl/settings.py +++ b/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', diff --git a/static/js/compilacao.js b/static/js/compilacao.js index 1503fbaf1..26bde8cfd 100644 --- a/static/js/compilacao.js +++ b/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); + +}); diff --git a/static/styles/compilacao.scss b/static/styles/compilacao.scss index 9c292481f..6015f2d73 100644 --- a/static/styles/compilacao.scss +++ b/static/styles/compilacao.scss @@ -1,7 +1,21 @@ - +$color_actions: #16407c; +$color_actions_border: #ddd; +@mixin background-top-down($top, $bottom) { + background: $top; + background-image: -webkit-linear-gradient(top, $top, $bottom); + background-image: -moz-linear-gradient(top, $top, $bottom); + background-image: -ms-linear-gradient(top, $top, $bottom); + background-image: -o-linear-gradient(top, $top, $bottom); + background-image: linear-gradient(to bottom, $top, $bottom); +} +@mixin border-radius($radius) { + -webkit-border-radius: $radius; + -moz-border-radius: $radius; + -ms-border-radius: $radius; + border-radius: $radius; +} #message_block { - display: block; position: fixed; top: 0; @@ -10,610 +24,659 @@ right: 0; background-color: rgba(220, 220, 220, 0.75); z-index:99; -} - -#message_block #msg{ - position: relative; - margin: 20% auto; - padding: 1.2em 2em; - max-width: 600px; - text-align: center; - font-size: 1.5em; - color: #677; - - border: 1px solid #eee; - background-color: #fff !important; - box-shadow: 0 1px 2px #999; -} - -.dispositivo { - font-size:1em; - transition: all 0.2s ease-in-out; -} - - -.dispositivo .ementa { - padding: 4em 0em 3em 35%; - font-weight: bold; - -} - -.dispositivo .anexo, -.dispositivo .disp_preliminares, -.dispositivo .disp_gerais, -.dispositivo .disp_transitorias, -.dispositivo .disp_finais { - font-size: 1.5em; - text-align: center; - font-weight: bold; - margin-top: 3em; - margin-bottom: 1em; -} - -.dispositivo .parte { - font-size: 1.5em; - text-align: center; - font-weight: bold; - margin-top: 2em; - margin-bottom: 1em; -} -.dispositivo .livro { - font-size: 1.5em; - text-align: center; - font-weight: bold; - margin-top: 2em; - margin-bottom: 1em; -} - -.dispositivo .titulo { - font-size: 1.5em; - text-align: center; - font-weight: bold; - margin-top: 2em; - margin-bottom: 1em; -} - -.dispositivo .capitulo { - margin-bottom: 1em; - margin-top: 1.5em; - font-size: 1.3em; - text-align: center; - font-weight: bold; -} - -.dispositivo .secao { - margin-top: 1.2em; - margin-bottom: 0.7em; - font-size: 1.2em; - text-align: center; - font-weight: bold; -} - -.dispositivo .subsecao, .dispositivo .itemsecao { - margin-top: 1em; - margin-bottom: 0.6em; - font-size: 1.2em; - text-align: center; - font-style: italic; - font-weight: bold; -} - -.dispositivo .artigo { - font-size: 1.15em; - float:left; -} -.dispositivo .caput { - margin-top: 0.3333em; - font-size: 1.15em; - display: block; -} - -.dispositivo .paragrafo { - padding-left: 1.5em; - font-size: 1.1em; - margin-top: 0.2222em; -} - -.dispositivo .inciso { - font-size: 1.1em; - padding-left: 2.5em; - margin-top: 0.1667em; -} -.dispositivo .alinea { - font-size: 1.0em; - padding-left: 3.5em; - margin-top: 2px; + #msg{ + position: relative; + margin: 20% auto; + padding: 1.2em 2em; + max-width: 600px; + text-align: center; + font-size: 1.5em; + color: #677; + + border: 1px solid #eee; + background-color: #fff !important; + box-shadow: 0 1px 2px #999; + } } +.page { + background-color: #f0f0f0; +} + +.cp { + .dpt { + font-size:1em; + transition: all 0.2s ease-in-out; + + .ementa { + padding: 4em 0em 3em 35%; + font-weight: bold; + } + + .titulo_generico { + text-align: center; + font-weight: bold; + margin-bottom: 1em; + font-size: 1.5em; + margin-top: 3em; + } + + .anexo, + .disp_preliminares, + .disp_gerais, + .disp_transitorias, + .disp_finais, + .parte, + .livro { + @extend .titulo_generico; + } + + .titulo { + @extend .titulo_generico; + margin-top: 2em; + } + + .capitulo { + @extend .titulo_generico; + margin-top: 1.5em; + font-size: 1.3em; + } + + .secao { + @extend .titulo_generico; + margin-top: 1.2em; + margin-bottom: 0.7em; + font-size: 1.2em; + } + + .subsecao, + .itemsecao { + @extend .titulo_generico; + margin-top: 1em; + margin-bottom: 0.6em; + font-size: 1.2em; + font-style: italic; + } + + .artigo { + font-size: 1.15em; + float:left; + } + + .caput { + margin-top: 0.3333em; + font-size: 1.15em; + } + + .paragrafo { + padding-left: 1.5em; + font-size: 1.1em; + margin-top: 0.2222em; + } + + .inciso { + font-size: 1.1em; + padding-left: 2.5em; + margin-top: 0.1667em; + } + + .alinea { + font-size: 1.0em; + padding-left: 3.5em; + margin-top: 2px; + } + + .item { + font-size: 1.0em; + padding-left: 4.5em; + margin-top: 2px; + } + + a { + color: #444444; + &.link_alterador { + color: #2980B9; + font-size: 0.75em; + } + &.desativado { + @extend .desativado; + } + } + + .bloco_alteracao { + padding-left: 10%; + font-style: italic; + color: #018; + + a { + text-decoration: underline; + } + + a, table, table td { + color: #018 !important; + } + } + } /* and dpt */ + + .desativado, .desativado * { + text-decoration: line-through; + color: #777 !important; + + table, table td { + border: 1px dotted #ccc; + } + } -.dispositivo .item { - font-size: 1.0em; - padding-left: 4.5em; - margin-top: 2px; -} + .top-bar { + line-height: 1.6rem; + height: auto; + background: #2980B9; + z-index:1; + margin: 0 auto; + max-width: 62.5rem; + } -.compilacaoedit .desativado, .compilacaoedit .desativado *, -.compilacao .desativado, .compilacao .desativado * { - text-decoration: line-through; - color: #777 !important; -} -.compilacaoedit .desativado table, .compilacaoedit .desativado table td, -.compilacao .desativado table, .compilacao .desativado table td { - border: 1px dotted #ccc; - text-decoration: line-through; -} + .top-bar-section { + li:not(.has-form) { + a:not(.button) { -.dispositivo a { - color: #444444 !important; -} -.dispositivo a.link_alterador { - color: #2980B9 !important; - font-size: 0.75em; -} - -.dispositivo .bloco_alteracao { - padding-left: 10%; - font-style: italic; -} + @extend .top-bar; + padding: 0 0.43333rem; -.dispositivo .bloco_alteracao:hover a { - text-decoration: underline; -} - -.dispositivo .bloco_alteracao, -.dispositivo .bloco_alteracao a, -.dispositivo .bloco_alteracao table, -.dispositivo .bloco_alteracao table td { - color: #018 !important; -} - - -.compilacao .top-bar-section li:not(.has-form) a:not(.button), -.compilacao .top-bar { - line-height: 1.6rem; - height: auto; - background: #2980B9; - z-index:1; - margin: 0 auto; - max-width: 62.5rem; -} + &.selected, &:hover { + background: #1056A0; + } + } + } + } -.compilacao .top-bar-section li:not(.has-form) a:not(.button).selected, -.compilacao .top-bar-section li:not(.has-form) a:not(.button):hover { - background: #1056A0; -} + ul.nav { + background: #2980B9; + display:block; + width: 100%; + z-index:1; + } -.compilacao .top-bar-section li:not(.has-form) a:not(.button) { - padding: 0 0.43333rem; -} + .tipo-vigencias { + border-top: 1px solid #62B5B5; + } -.compilacao ul.nav { - background: #2980B9; - display:block; - width: 100%; - z-index:1; -} -.compilacao .tipo-vigencias { - border-top: 1px solid #62B5B5; -} - -.compilacao .vigencias { - margin: 2.5em 0 0 0; - transition: all .4s ease-in-out; - background: #2980B9; - clear:both; -} + .vigencias { + margin: 2.5em 0 0 0; + transition: all .4s ease-in-out; + background: #2980B9; + clear:both; + } -.compilacao .fixed{ - z-index:98; -} + .fixed{ + z-index:98; + } +} /* end cp */ -.displaynone { - display: none !important; -} +.cpe { + @extend .cp; -.compilacaoedit { - margin-bottom: 30em; + margin-bottom: 30em; margin-left: 0.8em; - z-index: 1; -} - - -.compilacaoedit .semtexto { - font-weight: bold; - color: #8DA6D8; -} - - - -.compilacaoedit .edit { - position: relative; - display:block; - background-color: transparent !important; - border: 0px none #fff; -} -.compilacaoedit .edit .artigo { - float: none; -} - -.compilacaoedit .edit > .actions { - color: #fff; - position: absolute; - padding: 0 0.2em; - left: -2.2em; - opacity: 0; - transition: all 0.4s ease-in-out; -} - -.compilacaoedit .edit > .actions a.btn-inserts { - background: #3498db; - background-image: -webkit-linear-gradient(top, #3498db, #2980b9); - background-image: -moz-linear-gradient(top, #3498db, #2980b9); - background-image: -ms-linear-gradient(top, #3498db, #2980b9); - background-image: -o-linear-gradient(top, #3498db, #2980b9); - background-image: linear-gradient(to bottom, #3498db, #2980b9); - -webkit-border-radius: 7; - -moz-border-radius: 7; - border-radius: 7px; - color: #ffffff !important; - font-weight: bold; - padding: 2px 6px 2px 7px; - text-decoration: none; -} - -.compilacaoedit .edit > .actions a.btn-inserts:hover { - background: #3cb0fd; - background-image: -webkit-linear-gradient(top, #3cb0fd, #3498db); - background-image: -moz-linear-gradient(top, #3cb0fd, #3498db); - background-image: -ms-linear-gradient(top, #3cb0fd, #3498db); - background-image: -o-linear-gradient(top, #3cb0fd, #3498db); - background-image: linear-gradient(to bottom, #3cb0fd, #3498db); - text-decoration: none; -} -.compilacaoedit .edit:hover > .actions { - z-index: 9; - opacity: 0.5; - background-color: transparent !important -} - -.compilacaoedit .edit:hover > .actions:hover { - opacity: 1; -} - -.compilacaoedit .edit:hover > .actions:hover::before { - - border-color: transparent transparent transparent #78F9FF; -} - -.compilacaoedit .edit:hover > .actions::before { - border: inset 0.375rem; - content: ""; - display: block; - height: 0; - width: 0; - border-color: transparent transparent transparent #78F9FF; - position: absolute; - top: 0.53rem; - right: -0.51rem; -} - - -.compilacaoedit .editdi { - display: block; - clear: left; -} - -.compilacaoedit .editdi *:hover { - background-color: #eee; -} - - -.compilacaoedit .articulacao{ - margin-left: -0.8em; - margin-top: 2em; -} - -.compilacaoedit .articulacao::before { - content: "Articulação"; - background-color: #eee; - border-bottom: 1px solid #aaa; - padding: 0.333em; - padding-left: 1em; - display:block; -} - -.compilacaoedit .editselected .articulacao::before { - display: none; -} -.compilacaoedit .editselected > .editdi { - padding-top: 1em; -} -.compilacaoedit .editselected > .label_pai { - position: absolute; - color: #999; - top: -1.7em; - left: 0; - right: 0; - width: auto; - height: auto; -} - -.compilacaoedit .editselected { - border: 2.2em solid #eee; - padding: 1em; - margin: 1em -2em 1em -2.8em; - z-index: 1; - background-color: #fff !important; - box-shadow: 0 1px 2px #aaa; -} - -.compilacaoedit .editselected > .actions { - display: none; -} - - -.compilacaoedit .actions_inserts { - color: #fff; - position: relative; - transition: all 0.4s ease-in-out; - margin: 0em; -} - - -.compilacaoedit .actions_inserts ul { - margin-left: 0; - } - -.compilacaoedit .actions_inserts li { - font-weight: normal !important; - display: inline-block; - position: relative; - white-space:nowrap; - } -.compilacaoedit .actions_inserts > li.left { - border-right: 1px solid white; + a { + text-decoration: none; } - - -.compilacaoedit .actions_inserts > li.right { - min-width: 2em; - text-align: center; -} - - -.compilacaoedit .actions_inserts li ul { - display: none; - position:absolute; - top: auto; - } - -.compilacaoedit .actions_inserts li:hover ul{ - display: block; - } - -.compilacaoedit .actions_inserts li:hover ul li{ - display: block; - background: #3498db; - background-image: none; -} - -.compilacaoedit .actions_inserts { - z-index: 99; -} - -.compilacaoedit a.btn-inserts { - background: #3498db; - background-image: -webkit-linear-gradient(top, #3498db, #2980b9); - background-image: -moz-linear-gradient(top, #3498db, #2980b9); - background-image: -ms-linear-gradient(top, #3498db, #2980b9); - background-image: -o-linear-gradient(top, #3498db, #2980b9); - background-image: linear-gradient(to bottom, #3498db, #2980b9); - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0px; - color: #ffffff !important; - font-size: 0.8em; - padding: 0 6px 0 7px; - text-decoration: none; - display: block; - line-height: 1.7em; - min-height: 1.7em; - margin: 0; -} -.compilacaoedit a.btn-inserts:hover { - background: #3cb0fd; - background-image: -webkit-linear-gradient(top, #3cb0fd, #3498db); - background-image: -moz-linear-gradient(top, #3cb0fd, #3498db); - background-image: -ms-linear-gradient(top, #3cb0fd, #3498db); - background-image: -o-linear-gradient(top, #3cb0fd, #3498db); - background-image: linear-gradient(to bottom, #3cb0fd, #3498db); - text-decoration: none; -} - -.compilacaoedit .actions_inserts > li >a.btn-inserts { - line-height: 2.2em; - min-height: 2.2em; - font-size: 1em; - padding: 0 1em; + .semtexto { + font-weight: bold; + color: #8DA6D8; } - - - + .selected { + background-color: rgba(0, 0, 0, 0.1); + } -.compilacaoedit .editdi_form input[type=submit] { - margin: 0; - padding: 0.35em 2em; -} - -.compilacaoedit .editdi_form a.alert { - background-image: none; - background-color: #A70808 !important; - color: #c99 !important; - font-weight: normal !important; - margin: 0; - padding: 0.35em 2em; -} + .dpt { + position: relative; + display:block; + .artigo { + float: none; + } + & > .actions_left { + color: #fff; + position: absolute; + left: -2.2em; + opacity: 0; + transition: all 0.4s ease-in-out; + a { + &.btn-edit { + @include background-top-down(#3498DB, #2980C9); + @include border-radius(7px); + color: #ffffff !important; + font-weight: bold; + padding: 2px 6px 2px 7px; + + &:hover { + @include background-top-down(#3cb0fd, #3498DB); + } + } + } + } + + &:hover > .actions_left { + opacity: 0.5; + background-color: transparent !important; + &::before { + content: ""; + border: inset 0.375rem; + border-color: transparent transparent transparent #3cb0fd; + position: absolute; + display: block; + height: 0; + width: 0; + top: 0.4rem; + right: -0.73rem; + } + &:hover { + opacity: 1; + &::before { + border-color: transparent transparent transparent #3cf0ff; + } + } + } + + .bloco { + display: block; + clear: both; + *:hover { + background-color: #eee; + } + + } + .articulacao{ + margin-left: -0.8em; + margin-top: 2em; + &::before { + content: "Articulação"; + background-color: #eee; + border-bottom: 1px solid #aaa; + padding: 0.333em; + padding-left: 1em; + display:block; + } + } + } -.compilacaoedit .editdi_form a.alert:hover { - background-image: none; - background-color: #c70808 !important; - color: #ecc !important; + .dpt-selected { + border: 2.2em solid #eee; + margin: 1em -2em 1em -2.8em; + box-shadow: 0 2px 2px #aaa; + + ul { + list-style: none; + margin: 0; + padding: 0; + } + + .bloco { + opacity: 0.5; + } + & > .bloco { + padding: 1em; + opacity: 1; + } + + & > .dpt { + padding: 0 1em; + } + + .csform { /* compilacao simple form */ + display: block; + clear: both; + z-index: 9; + position: static; + + .btns-action { + position: absolute; + display: table; + transition: all 0.4s ease-in-out; + a { + color: $color_actions; + display: block; + font-size: 1em; + background-image: none; + background-color: transparent; + vertical-align: middle; + line-height: 2.2em; + min-width: 2.2em; + text-align: center; + font-weight: normal; + text-shadow: 0 0 10px rgba(0,0,0,0.3); + } + & > li { + position: relative; + &:hover { + background-color: rgba(0,0,0,0.1); + & > a { + text-shadow: 0 0 5px #777; + color: #ff0; + font-weight: bold; + } + } + } + } + + .actions_parents { + height: 2.2em; + top: -2.2em; + left: -2.2em; + a { + padding: 0.2em 0.4em; + text-shadow: 0 0 5px rgba(0,0,0,0.3); + } + div, li { + font-size: 0.8em; + display: table-cell; + vertical-align: middle; + border-right: 1px solid #ccc; + } + div { + padding: 0 0.4em; + font-stretch: condensed; + } + & > li { + &:hover a{ + color: $color_actions; + text-shadow: 0 0 0px #777; + font-weight: normal; + } + } + } + + .label_status { + position: absolute; + bottom: -2.5em; + right: -1.8em; + color: #889; + padding: 0.3em 0; + font-size: 0.8em; + } + + .actions_top { + top: -2.2em; + right: 0em; + + li { + display: table-cell; + vertical-align: middle; + border-left: 1px solid $color_actions_border; + &:last-child { + border-right: 1px solid $color_actions_border; + } + } + } + + .actions_bottom { + @extend .actions_top; + top: auto; + right: auto; + left: 0em; + bottom: -2.2em; + } + + .actions_right { + top: 0em; + right: -2.2em; + + li { + display: block; + border-bottom: 1px solid $color_actions_border; + &:first-child { + border-top: 1px solid $color_actions_border; + } + } + } + + .actions_left { + @extend .actions_right; + right: auto; + left: -2.2em; + } + + .actions_inserts { + position: relative; + z-index: 9; + display: table; + width: 100%; + + li, li:hover { + background: transparent; + a { + background: #2980C9; + background-image: none; + text-shadow: 0 0 0; + color: #fff; + font-weight: normal; + white-space: nowrap; + + &:hover { + background-color: #196aad; + text-shadow: 0 0 0; + color: #fff; + font-weight: normal; + } + } + } + + & > li { + display: table-cell; + table-layout: auto; + vertical-align: middle; + border-right: 1px solid white; + + &:hover > ul { + display: block; + } + &:last-child { + border-right: 0px; + } + + & > ul { + display: none; + position:absolute; + box-shadow: 0px 6px 18px rgba(0, 0, 0, 0.19), 0px 2px 6px rgba(0, 0, 0, 0.23); + a { + text-align: left; + font-size: 0.8em; + padding: 0 0.5em; + white-space: nowrap; + } + } + + span { + padding: 0.7em; + } + + & > a { + @include background-top-down(#3498DB, #2980C9); + &.btn-excluir { + text-align: left; + background: #A70808; + color: #c99; + padding-left: 1.5em; + &:hover { + background-color: #c70808; + color: #ecc; + } + &::before { + z-index: 10; + position: absolute; + background: url(/static/img/icon_delete_white.png) no-repeat 0 50%; + content:""; + top: 0; + left: 0; + display: block; + color: black; + margin-top: 0.05em; + margin-left: 0.6em; + height: 2em; + width: 2em; + } + } + &.btn-salvar { + @extend .btn-excluir; + + background: #1f8b4d; + color: white; + padding-left: 1.7em; + &:hover { + background: #2d9c5c; + color: white; + } + &::before { + background: url(/static/img/icon_save_white.png) no-repeat 0 50%; + } + } + } + } /* fim li de primeiro nivel*/ + } /* fim actions_inserts*/ + + .menu_fixo { + & > li { + vertical-align: top; + background-color: transparent; + & > ul { + display: block; + position: relative; + box-shadow: 0 0 0; + a { + white-space: normal; + } + } + } /* fim li de primeiro nivel*/ + .add_prior { + display: block; + position: static; + ul { + position: absolute; + display: none; + right: 1em; + box-shadow: 0px 6px 18px rgba(0, 0, 0, 0.19), 0px 2px 6px rgba(0, 0, 0, 0.5); + } + } + } /* fim menu_fixo*/ + + textarea { + margin: 0; + resize: vertical; + min-height: 12.6em; + border: 0px; + border-bottom: 2px #ccc solid; + &::-webkit-input-placeholder { + color: #c70808; + opacity: 0.6; + } + &:-moz-placeholder { /* Firefox 18- */ + color: #c70808; + } + &::-moz-placeholder { /* Firefox 19+ */ + color: #c70808; + } + &:-ms-input-placeholder { + color: #c70808; + opacity: 0.6; + } + } + } /* fim csform*/ + } } - - - -.compilacaoedit .actions_head { - margin: -2.2em -2.2em 0 0; - position: absolute; - top: 0; - right: 0; - list-style: none; - display: table; - z-index: 98; +.clear { + clear:both; } -.compilacaoedit .actions_head > li{ - float: right; -} - - -.compilacaoedit a.btn-action { - display: table-cell; - font-size: 1em; - background-image: none; - background-color: transparent !important; - color: #615151 !important; - vertical-align: middle; - line-height: 2.2em; - min-width: 2.2em; - text-align: center; - text-shadow: 0 0 10px rgba(0,0,0,0.3); +.mce-container { + border-color: #ccc !important; } -.compilacaoedit a.btn-action:hover { +.mce-btn button:hover { background-color: rgba(0,0,0,0.1) !important; - text-shadow: 0 0 5px #777; - color: #fff !important; -} - -.compilacaoedit .actions_right { - margin: 0 -2.2em 0 0; - position: absolute; - top: 0; - right: 0; - list-style: none; - display: table; - z-index: 9; -} - - - - - - - - - - - - - - - - - - - -.compilacaoedit .editdi_form { - display: block; - clear: both; - margin: -1em; -} - -.compilacaoedit .editdi_form textarea { - margin: 0; - resize: vertical; - min-height: 12.5em; + text-shadow: 0 0 5px #fff; + box-shadow: 0 0 5px #777; } -.compilacaoedit .actions_insert { - opacity: 1; - display: block; -} - -.compilacaoedit .actions_insert li { - opacity: 1; - display: block; -} -.compilacaoedit .actions_insert > li.right{ - opacity: 1; - text-align: center; -} -.compilacaoedit .actions_insert > li.left:nth-child(1), -.compilacaoedit .actions_insert > li.left:nth-child(2) { - opacity: 1; - display: block; - min-width: 33%; - max-width: 33%; -} -.compilacaoedit .actions_insert li.left:nth-child(1) ul, -.compilacaoedit .actions_insert li.left:nth-child(2) ul { - display: block; - position: relative; -} - -.compilacaoedit .actions_insert li.left:nth-child(n+3):hover ul { - right: 0; - box-shadow: -3px 3px 1.5em #336; -} - - -.compilacaoedit .actions_footer { - position: absolute; - top: 100%; - left: -1.8em; - right: -1.8em; - color: #999; - transition: all 0.4s ease-in-out; - padding: 0.3em 0; -} - -.compilacaoedit .actions_footer ul { - margin-left: 0; - margin-bottom: 0; -} - -.compilacaoedit .actions_footer li { - display: block; - height: auto !important; +.displaynone { + display: none !important; } -.clear { - clear:both; -} -.mce-container { - border-color: #ccc !important; -} @media only screen and (max-width: 40.0625em) { - .compilacao .fixed{ - z-index:98; - position: relative; - } - + .cp .fixed{ + z-index:98; + position: relative; + } + .cpe { + .dpt-selected { + margin:1em -1em 1em -1.8em; + + .csform { + .actions_parents, .label_status { + font-size: 0.7em; + position:static !important; + display: block !important; + padding-bottom: 1em; + height: auto !important; + div, li { + display: inline-block !important; + } + + } + + .actions_inserts { + a { + &.btn-inserts, &.btn-excluir, &.btn-salvar { + span { + display: none; + } + } + } + & > li { + &.add_in, &.add_next, &.add_prior { + + position: static !important; + + ul { + position: absolute !important; + display: none !important; + box-shadow: 0px 6px 18px rgba(0, 0, 0, 0.19), 0px 2px 6px rgba(0, 0, 0, 0.5) !important; + } + &:hover ul { + display: block !important; + position: absolute !important; + } + } + &.add_in ul { + left: 1em !important; + right: 1em !important; + } + &.add_next ul { + left: 0 !important; + right: 1em !important; + } + &.add_prior ul { + left: 1em !important; + right: 0 !important; + } + } + } + } + } + } } @media print { - .compilacao .vigencias { - display:none; - } -} \ No newline at end of file + .cp .vigencias { + display:none; + } +} diff --git a/templates/base.html b/templates/base.html index 17c56aa95..46a1ed1d8 100644 --- a/templates/base.html +++ b/templates/base.html @@ -19,7 +19,6 @@ - {# Scripts #} {# modernizr must be in head (see http://modernizr.com/docs/#installing) #} diff --git a/templates/compilacao/edit.html b/templates/compilacao/edit.html index 4a366bba5..acc76a8ad 100644 --- a/templates/compilacao/edit.html +++ b/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}} + {% endblock %} + {% block title%}

Edição: {{ view.get_norma }} - {% trans 'Texto Multivigente' %}

{% endblock %} -{% block base_content %} +{% block base_content %}
{% trans 'Aguarde... Atualizando informações!!!'%}
-
+
{% include 'compilacao/edit_bloco.html'%}
{% endblock base_content %} - diff --git a/templates/compilacao/edit_bloco.html b/templates/compilacao/edit_bloco.html index 5a14126c5..4c4686015 100644 --- a/templates/compilacao/edit_bloco.html +++ b/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 %} -
- {% 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 %} + + {% 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 %} -
+
{% endif%} + {% if view|render_actions_head:dpt %} +
+
+
    +
  • C
  • + {% if not dpt.tipo_dispositivo.dispositivo_de_articulacao %} +
  • E
  • +
  • E+
  • +
  • E*
  • + {%endif%} +
+ - {% if view|render_actions_head:dispositivo %} -
- - -
    - - {% if not dispositivo.tipo_dispositivo.dispositivo_de_articulacao %} -
  • E*
  • -
  • E+
  • -
  • E
  • - {%endif%} -
- - - - {% if not dispositivo.tipo_dispositivo.dispositivo_de_articulacao %} - {% csrf_token %} - - {%endif%} - - -
- - -
-
Em Edição: {% nomenclatura_heranca dispositivo %}
-
-
- {% endif%} - - + {% endif%} + {% if view.pk_view == 0 and view.pk_add == 0 or view.pk_add != view.pk_view %} -
- E +
+ E
-
-{% spaceless %} - - {{ 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 %}({{dispositivo.tipo_dispositivo}} sem texto){%else%}{{ dispositivo.texto|safe }}{%endif%} - - - {% if dispositivo.norma_publicada_id != None %} - - {{ dispositivo.tipo_dispositivo.nota_automatica_prefixo_html|safe }} - {% nota_automatica dispositivo %} - {{ dispositivo.tipo_dispositivo.nota_automatica_sufixo_html|safe }} - - {% 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' %} +
+ {% 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 == '' and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}({{dpt.tipo_dispositivo}} sem texto){%else%}{{ dpt.texto|safe }}{%endif%} + + + {% if dpt.norma_publicada_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %} + + {{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }} + {% nota_automatica dpt %} + {{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }} + + {% 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%}
- {% 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%} \ No newline at end of file + {% close_div view.flag_nivel_old view.flag_nivel_ini 0 %} +{% endif%} diff --git a/templates/compilacao/edit_bloco_alteracao.html b/templates/compilacao/edit_bloco_alteracao.html index d438e02af..3f7b71744 100644 --- a/templates/compilacao/edit_bloco_alteracao.html +++ b/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 %} -
+
- {{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ ch.rotulo }}{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }} -
+ {{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ ch.rotulo }}{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }} +
{% endspaceless %} -{% endfor %} \ No newline at end of file +{% endfor %} diff --git a/templates/compilacao/index.html b/templates/compilacao/index.html index 080ec9286..66379e447 100644 --- a/templates/compilacao/index.html +++ b/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}} + + +{% endblock %} + {% block title%}

{{ view.get_norma }}

{% endblock %} -{% block base_content %} +{% block base_content %} -
+
@@ -65,11 +73,11 @@ $(document).ready(function() {
{% for key, values in view.get_vigencias.items %} - {% if forloop.first %} + {% if forloop.first %}
@@ -120,4 +128,4 @@ $(document).ready(function() { {% include 'compilacao/index_bloco.html'%}
-{% endblock base_content %} \ No newline at end of file +{% endblock base_content %} diff --git a/templates/compilacao/index_bloco.html b/templates/compilacao/index_bloco.html index 0f5297575..7066cf042 100644 --- a/templates/compilacao/index_bloco.html +++ b/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 %} -
- {% 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 %} +
+ {% elif dpt.nivel < view.flag_nivel_old %} + {% close_div view.flag_nivel_old dpt.nivel 0 %} {% endif%} -
-
-{% spaceless %} - {{ dispositivo.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ dispositivo.rotulo }}{{ dispositivo.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ dispositivo.tipo_dispositivo.texto_prefixo_html|safe }}{{ dispositivo.texto|safe }} - {% if dispositivo.norma_publicada_id != None %} - - {{ dispositivo.tipo_dispositivo.nota_automatica_prefixo_html|safe }} - {% nota_automatica dispositivo %} - {{ dispositivo.tipo_dispositivo.nota_automatica_sufixo_html|safe }} - - {% 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' %} +
+
+ {% spaceless %} + {{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ dpt.rotulo }}{{ 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 %} + + {{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }} + {% nota_automatica dpt %} + {{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }} + + {% 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%}
- {% set_nivel_old view dispositivo.nivel %} + {% set_nivel_old view dpt.nivel %} {% endfor %} -{% close_div view.flag_nivel_old view.flag_nivel_ini 0 %} \ No newline at end of file +{% close_div view.flag_nivel_old view.flag_nivel_ini 0 %} diff --git a/templates/compilacao/index_bloco_alteracao.html b/templates/compilacao/index_bloco_alteracao.html index d438e02af..3f7b71744 100644 --- a/templates/compilacao/index_bloco_alteracao.html +++ b/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 %} -
+
- {{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ ch.rotulo }}{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }} -
+ {{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ ch.rotulo }}{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }} +
{% endspaceless %} -{% endfor %} \ No newline at end of file +{% endfor %}