From 2a4f4dbd7104a4467f888aee8c5ce86474317646 Mon Sep 17 00:00:00 2001 From: Cesar Carvalho Date: Mon, 15 Oct 2018 14:21:01 -0300 Subject: [PATCH] loggers feitos nos forms de materia e no app norma --- sapl/materia/forms.py | 100 ++- sapl/norma/forms.py | 20 + sapl/norma/views.py | 7 + sapl/static/styles/app.css | 494 +++++++++++++ sapl/static/styles/compilacao.css | 1136 +++++++++++++++++++++++++++++ 5 files changed, 1752 insertions(+), 5 deletions(-) create mode 100755 sapl/static/styles/app.css create mode 100755 sapl/static/styles/compilacao.css diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index c353b862f..478a94269 100755 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -1,6 +1,6 @@ import os - +import logging import django_filters from crispy_forms.bootstrap import Alert, FormActions, InlineRadios from crispy_forms.helper import FormHelper @@ -146,6 +146,7 @@ class MateriaSimplificadaForm(ModelForm): def clean(self): super(MateriaSimplificadaForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -156,6 +157,8 @@ class MateriaSimplificadaForm(ModelForm): ano = cleaned_data['ano'] if data_apresentacao.year != ano: + logger.error("- O ano da matéria é diferente" + " do ano na data de apresentação") raise ValidationError("O ano da matéria não pode ser " "diferente do ano na data de apresentação") @@ -191,6 +194,7 @@ class MateriaLegislativaForm(ModelForm): def clean(self): super(MateriaLegislativaForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -204,6 +208,8 @@ class MateriaLegislativaForm(ModelForm): if protocolo: if not Protocolo.objects.filter(numero=protocolo,ano=ano).exists(): + logger.error("- Protocolo %s/%s não" + " existe" % (protocolo, ano)) raise ValidationError(_('Protocolo %s/%s não' ' existe' % (protocolo, ano))) @@ -217,15 +223,21 @@ class MateriaLegislativaForm(ModelForm): ano=ano).exists() if exist_materia or exist_doc: + logger.error("- Protocolo %s/%s ja possui" + " documento vinculado" + % (protocolo, ano)) raise ValidationError(_('Protocolo %s/%s ja possui' ' documento vinculado' % (protocolo, ano))) p = Protocolo.objects.get(numero=protocolo,ano=ano) if p.tipo_materia != cleaned_data['tipo']: + logger.error("- Tipo do Protocolo deve ser o mesmo do Tipo Matéria") raise ValidationError(_('Tipo do Protocolo deve ser o mesmo do Tipo Matéria')) if data_apresentacao.year != ano: + logger.error("- O ano da matéria é diferente " + "do ano na data de apresentação") raise ValidationError(_("O ano da matéria não pode ser " "diferente do ano na data de apresentação")) @@ -234,6 +246,8 @@ class MateriaLegislativaForm(ModelForm): if ano_origem_externa and data_origem_externa and \ ano_origem_externa != data_origem_externa.year: + logger.error("O ano de origem externa da matéria é " + " diferente do ano na data de origem externa") raise ValidationError(_("O ano de origem externa da matéria não " "pode ser diferente do ano na data de " "origem externa")) @@ -266,6 +280,7 @@ class UnidadeTramitacaoForm(ModelForm): def clean(self): super(UnidadeTramitacaoForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -278,6 +293,7 @@ class UnidadeTramitacaoForm(ModelForm): if len(cleaned_data) != 1: msg = _('Somente um campo deve ser preenchido!') + logger.error("- Somente um campo deve ser preenchido!") raise ValidationError(msg) return cleaned_data @@ -327,6 +343,7 @@ class RelatoriaForm(ModelForm): def clean(self): super(RelatoriaForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -334,8 +351,10 @@ class RelatoriaForm(ModelForm): cleaned_data = self.cleaned_data try: + logger.info("- Tentando obter objeto Comissao.") comissao = Comissao.objects.get(id=self.initial['comissao']) except ObjectDoesNotExist: + logger.error("- A localização atual deve ser uma comissão.") msg = _('A localização atual deve ser uma comissão.') raise ValidationError(msg) else: @@ -364,6 +383,7 @@ class TramitacaoForm(ModelForm): def clean(self): super(TramitacaoForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -390,30 +410,40 @@ class TramitacaoForm(ModelForm): if (destino != self.cleaned_data['unidade_tramitacao_local']): msg = _('A origem da nova tramitação deve ser igual ao ' 'destino da última adicionada!') + logger.error("- A origem da nova tramitação deve ser igual ao " + "destino da última adicionada!") raise ValidationError(msg) if cleaned_data['data_tramitacao'] > timezone.now().date(): msg = _( 'A data de tramitação deve ser ' + 'menor ou igual a data de hoje!') + logger.error("- A data de tramitação deve ser " + "menor ou igual a data de hoje!") raise ValidationError(msg) if (ultima_tramitacao and data_tram_form < ultima_tramitacao.data_tramitacao): msg = _('A data da nova tramitação deve ser ' + 'maior que a data da última tramitação!') + logger.error("- A data da nova tramitação deve ser " + "maior que a data da última tramitação!") raise ValidationError(msg) if data_enc_form: if data_enc_form < data_tram_form: msg = _('A data de encaminhamento deve ser ' + 'maior que a data de tramitação!') + logger.error("- A data de encaminhamento deve ser " + "maior que a data de tramitação!") raise ValidationError(msg) if data_prazo_form: if data_prazo_form < data_tram_form: msg = _('A data fim de prazo deve ser ' + 'maior que a data de tramitação!') + logger.error("- A data fim de prazo deve ser " + + "maior que a data de tramitação!") raise ValidationError(msg) return cleaned_data @@ -446,6 +476,7 @@ class TramitacaoUpdateForm(TramitacaoForm): def clean(self): super(TramitacaoUpdateForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -460,6 +491,9 @@ class TramitacaoUpdateForm(TramitacaoForm): if ultima_tramitacao != self.instance: if self.cleaned_data['unidade_tramitacao_destino'] != \ self.instance.unidade_tramitacao_destino: + logger.error("- Você não pode mudar a Unidade de Destino desta " + "tramitação, pois irá conflitar com a Unidade " + "Local da tramitação seguinte") raise ValidationError( 'Você não pode mudar a Unidade de Destino desta ' 'tramitação, pois irá conflitar com a Unidade ' @@ -506,6 +540,7 @@ class LegislacaoCitadaForm(ModelForm): def clean(self): super(LegislacaoCitadaForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -513,11 +548,14 @@ class LegislacaoCitadaForm(ModelForm): cleaned_data = self.cleaned_data try: + logger.info("- Tentando obter objeto NormalJuridica.") norma = NormaJuridica.objects.get( numero=cleaned_data['numero'], ano=cleaned_data['ano'], tipo=cleaned_data['tipo']) except ObjectDoesNotExist: + logger.error("- A norma a ser inclusa não existe no cadastro" + " de Normas.") msg = _('A norma a ser inclusa não existe no cadastro' ' de Normas.') raise ValidationError(msg) @@ -543,10 +581,12 @@ class LegislacaoCitadaForm(ModelForm): if not self.instance.id: if filtro_base.exists(): msg = _('Essa Legislação já foi cadastrada.') + logger.error("- Essa Legislação já foi cadastrada.") raise ValidationError(msg) else: if filtro_base.exclude(id=self.instance.id).exists(): msg = _('Essa Legislação já foi cadastrada.') + logger.error("- Essa Legislação já foi cadastrada.") raise ValidationError(msg) return cleaned_data @@ -569,11 +609,13 @@ class NumeracaoForm(ModelForm): def clean(self): super(NumeracaoForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data try: + logger.info("- Tentando obter objeto MateriaLegislativa.") MateriaLegislativa.objects.get( numero=self.cleaned_data['numero_materia'], ano=self.cleaned_data['ano_materia'], @@ -581,6 +623,8 @@ class NumeracaoForm(ModelForm): except ObjectDoesNotExist: msg = _('A matéria a ser inclusa não existe no cadastro' ' de matérias legislativas.') + logger.error("- A matéria a ser inclusa não existe no cadastro " + " de matérias legislativas.") raise ValidationError(msg) if Numeracao.objects.filter( @@ -590,6 +634,7 @@ class NumeracaoForm(ModelForm): numero_materia=self.cleaned_data['numero_materia'] ).exists(): msg = _('Essa numeração já foi cadastrada.') + logger.error("- Essa numeração já foi cadastrada.") raise ValidationError(msg) return self.cleaned_data @@ -614,6 +659,7 @@ class AnexadaForm(ModelForm): def clean(self): super(AnexadaForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -621,6 +667,7 @@ class AnexadaForm(ModelForm): cleaned_data = self.cleaned_data try: + logger.info("Tentando obter objeto MateriaLegislativa.") materia_anexada = MateriaLegislativa.objects.get( numero=cleaned_data['numero'], ano=cleaned_data['ano'], @@ -628,17 +675,21 @@ class AnexadaForm(ModelForm): except ObjectDoesNotExist: msg = _('A matéria a ser anexada não existe no cadastro' ' de matérias legislativas.') + logger.error("- A matéria a ser anexada não existe no cadastro" + " de matérias legislativas.") raise ValidationError(msg) materia_principal = self.instance.materia_principal if materia_principal == materia_anexada: + logger.error("- Matéria não pode ser anexada a si mesma.") raise ValidationError(_('Matéria não pode ser anexada a si mesma')) is_anexada = Anexada.objects.filter(materia_principal=materia_principal, materia_anexada=materia_anexada ).exists() if is_anexada: - raise ValidationError(_('Materia já se encontra anexada')) + logger.error("- Matéria já se encontra anexada.") + raise ValidationError(_('Matéria já se encontra anexada')) cleaned_data['materia_anexada'] = materia_anexada @@ -860,6 +911,7 @@ class AutoriaForm(ModelForm): def clean(self): cd = super(AutoriaForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -870,6 +922,7 @@ class AutoriaForm(ModelForm): if ((not pk and autorias.exists()) or (pk and autorias.exclude(pk=pk).exists())): + logger.error("- Esse Autor já foi cadastrado.") raise ValidationError(_('Esse Autor já foi cadastrado.')) return cd @@ -913,11 +966,13 @@ class AutoriaMultiCreateForm(Form): def clean(self): cd = super().clean() + logger = logging.getLogger(__name__) if 'autores' in self.errors: del self.errors['autores'] if 'autor' not in cd or not cd['autor'].exists(): + logger.error("- Ao menos um autor deve ser selecionado para inclusão") raise ValidationError( _('Ao menos um autor deve ser selecionado para inclusão')) @@ -1083,6 +1138,7 @@ class TipoProposicaoForm(ModelForm): def clean(self): super(TipoProposicaoForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -1093,11 +1149,14 @@ class TipoProposicaoForm(ModelForm): if 'tipo_conteudo_related' not in cd or not cd[ 'tipo_conteudo_related']: + logger.error("- Seleção de Tipo não definida.") raise ValidationError( - _('Seleção de Tipo não definida')) + _('Seleção de Tipo não definida.')) if not content_type.model_class().objects.filter( pk=cd['tipo_conteudo_related']).exists(): + logger.error("- O Registro definido (%s) não está na base de %s." + % (cd['tipo_conteudo_related'], content_type)) raise ValidationError( _('O Registro definido (%s) não está na base de %s.' ) % (cd['tipo_conteudo_related'], content_type)) @@ -1296,9 +1355,11 @@ class ProposicaoForm(forms.ModelForm): ].initial = self.instance.materia_de_vinculo.ano def clean_texto_original(self): + logger = logging.getLogger(__name__) texto_original = self.cleaned_data.get('texto_original', False) if texto_original and texto_original.size > MAX_DOC_UPLOAD_SIZE: max_size = str(MAX_DOC_UPLOAD_SIZE / (1024 * 1024)) + logger.error("- Arquivo muito grande. ( > {0}MB )".format(max_size)) raise ValidationError( "Arquivo muito grande. ( > {0}MB )".format(max_size)) return texto_original @@ -1319,6 +1380,7 @@ class ProposicaoForm(forms.ModelForm): def clean(self): super(ProposicaoForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -1331,14 +1393,17 @@ class ProposicaoForm(forms.ModelForm): if tm and am and nm: try: + logger.info("- Tentando obter objeto MateriaLegislativa.") materia_de_vinculo = MateriaLegislativa.objects.get( tipo_id=tm, ano=am, numero=nm ) except ObjectDoesNotExist: + logger.error("- Matéria Vinculada não existe!") raise ValidationError(_('Matéria Vinculada não existe!')) else: + logger.info("- Matéria vinculada com sucesso.") cd['materia_de_vinculo'] = materia_de_vinculo return cd @@ -1414,6 +1479,7 @@ class DevolverProposicaoForm(forms.ModelForm): def clean(self): super(DevolverProposicaoForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -1423,6 +1489,7 @@ class DevolverProposicaoForm(forms.ModelForm): if 'justificativa_devolucao' not in cd or\ not cd['justificativa_devolucao']: # TODO Implementar notificação ao autor por email + logger.error("- Adicione uma Justificativa para devolução.") raise ValidationError( _('Adicione uma Justificativa para devolução.')) return cd @@ -1493,6 +1560,7 @@ class ConfirmarProposicaoForm(ProposicaoForm): } def __init__(self, *args, **kwargs): + logger = logging.getLogger(__name__) self.proposicao_incorporacao_obrigatoria = \ sapl.base.models.AppConfig.attr( @@ -1514,6 +1582,7 @@ class ConfirmarProposicaoForm(ProposicaoForm): self.instance = kwargs.get('instance', None) if not self.instance: + logger.error("- Erro na Busca por proposição a incorporar") raise ValueError(_('Erro na Busca por proposição a incorporar')) if self.instance.tipo.content_type.model_class() == TipoDocumento: @@ -1599,6 +1668,7 @@ class ConfirmarProposicaoForm(ProposicaoForm): def clean(self): super(ConfirmarProposicaoForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -1606,6 +1676,9 @@ class ConfirmarProposicaoForm(ProposicaoForm): numeracao = sapl.base.models.AppConfig.attr('sequencia_numeracao') if not numeracao: + logger.error("- A sequência de numeração (por ano ou geral)" + " não foi configurada para a aplicação em " + "tabelas auxiliares") raise ValidationError("A sequência de numeração (por ano ou geral)" " não foi configurada para a aplicação em " "tabelas auxiliares") @@ -1616,12 +1689,14 @@ class ConfirmarProposicaoForm(ProposicaoForm): TipoMateriaLegislativa: if 'regime_tramitacao' not in cd or\ not cd['regime_tramitacao']: + logger.error("- Regime de Tramitação deve ser informado.") raise ValidationError( _('Regime de Tramitação deve ser informado.')) elif self.instance.tipo.content_type.model_class( ) == TipoDocumento and not cd['materia_de_vinculo']: - + logger.error("- Documentos não podem ser incorporados sem definir " + "para qual Matéria Legislativa ele se destina.") raise ValidationError( _('Documentos não podem ser incorporados sem definir ' 'para qual Matéria Legislativa ele se destina.')) @@ -1630,6 +1705,7 @@ class ConfirmarProposicaoForm(ProposicaoForm): @transaction.atomic def save(self, commit=False): + logger = logging.getLogger(__name__) # TODO Implementar workflow entre protocolo e autores cd = self.cleaned_data @@ -1673,9 +1749,11 @@ class ConfirmarProposicaoForm(ProposicaoForm): numeracao = None try: + logger.info("- Tentando obter modelo de sequência de numeração.") numeracao = sapl.base.models.AppConfig.objects.last( ).sequencia_numeracao - except AttributeError: + except AttributeError as e: + logger.error("- Erro ao obter modelo. " + str(e)) pass tipo = self.instance.tipo.tipo_conteudo_related @@ -1936,6 +2014,7 @@ class EtiquetaPesquisaForm(forms.Form): def clean(self): super(EtiquetaPesquisaForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -1948,12 +2027,15 @@ class EtiquetaPesquisaForm(forms.Form): # preencheu o Final, ou vice-versa if (not cleaned_data['data_inicial'] or not cleaned_data['data_final']): + logger.error("- Caso pesquise por data, os campos de Data Incial e " + "Data Final devem ser preenchidos obrigatoriamente") raise ValidationError(_( 'Caso pesquise por data, os campos de Data Incial e ' + 'Data Final devem ser preenchidos obrigatoriamente')) # Caso tenha preenchido, verifica se a data final é maior que # a inicial elif cleaned_data['data_final'] < cleaned_data['data_inicial']: + logger.error("- A Data Final não pode ser menor que a Data Inicial") raise ValidationError(_( 'A Data Final não pode ser menor que a Data Inicial')) @@ -1962,12 +2044,16 @@ class EtiquetaPesquisaForm(forms.Form): cleaned_data['processo_final']): if (not cleaned_data['processo_inicial'] or not cleaned_data['processo_final']): + logger.error("- Caso pesquise por número de processo, os campos de " + "Processo Inicial e Processo Final " + "devem ser preenchidos obrigatoriamente") raise ValidationError(_( 'Caso pesquise por número de processo, os campos de ' + 'Processo Inicial e Processo Final ' + 'devem ser preenchidos obrigatoriamente')) elif (cleaned_data['processo_final'] < cleaned_data['processo_inicial']): + logger.error("- O processo final não pode ser menor que o inicial") raise ValidationError(_( 'O processo final não pode ser menor que o inicial')) @@ -2009,6 +2095,7 @@ class FichaPesquisaForm(forms.Form): def clean(self): super(FichaPesquisaForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -2019,6 +2106,7 @@ class FichaPesquisaForm(forms.Form): return cleaned_data if cleaned_data['data_final'] < cleaned_data['data_inicial']: + logger.error("- A Data Final não pode ser menor que a Data Inicial.") raise ValidationError(_( 'A Data Final não pode ser menor que a Data Inicial')) @@ -2069,6 +2157,7 @@ class ExcluirTramitacaoEmLote(forms.Form): def clean(self): super(ExcluirTramitacaoEmLote, self).clean() + logger = logging.getLogger(__name__) cleaned_data = self.cleaned_data @@ -2085,6 +2174,7 @@ class ExcluirTramitacaoEmLote(forms.Form): unidade_tramitacao_destino=unidade_tramitacao_destino, status=status) if not tramitacao_set.exists(): + logger.error("- Não existem tramitações com os dados informados.") raise forms.ValidationError( _("Não existem tramitações com os dados informados.")) diff --git a/sapl/norma/forms.py b/sapl/norma/forms.py index afcc052cd..8305bf2f8 100755 --- a/sapl/norma/forms.py +++ b/sapl/norma/forms.py @@ -1,5 +1,6 @@ import django_filters +import logging from crispy_forms.helper import FormHelper from crispy_forms.layout import Fieldset, Layout from django import forms @@ -128,6 +129,7 @@ class NormaJuridicaForm(ModelForm): def clean(self): + logger = logging.getLogger(__name__) cleaned_data = super(NormaJuridicaForm, self).clean() if not self.is_valid(): @@ -143,12 +145,17 @@ class NormaJuridicaForm(ModelForm): cleaned_data['numero_materia'] and cleaned_data['ano_materia']): try: + logger.info("- Tentando obter objeto MateriaLegislativa.") materia = MateriaLegislativa.objects.get( tipo_id=cleaned_data['tipo_materia'], numero=cleaned_data['numero_materia'], ano=cleaned_data['ano_materia']) except ObjectDoesNotExist: + logger.error("- Matéria Legislativa %s/%s (%s) é inexistente." % ( + self.cleaned_data['numero_materia'], + self.cleaned_data['ano_materia'], + cleaned_data['tipo_materia'].descricao)) raise forms.ValidationError( _("Matéria Legislativa %s/%s (%s) é inexistente." % ( self.cleaned_data['numero_materia'], @@ -164,14 +171,18 @@ class NormaJuridicaForm(ModelForm): data = cleaned_data['data'] if data.year != ano: + logger.error("O ano da norma é diferente " + "do ano no campo data") raise ValidationError("O ano da norma não pode ser " "diferente do ano no campo data") return cleaned_data def clean_texto_integral(self): + logger = logging.getLogger(__name__) texto_integral = self.cleaned_data.get('texto_integral', False) if texto_integral and texto_integral.size > MAX_DOC_UPLOAD_SIZE: max_size = str(MAX_DOC_UPLOAD_SIZE / (1024 * 1024)) + logger.error("- Arquivo muito grande. ( > {0}MB )".format(max_size)) raise ValidationError( "Arquivo muito grande. ( > {0}MB )".format(max_size)) return texto_integral @@ -194,12 +205,14 @@ class AnexoNormaJuridicaForm(ModelForm): } def clean(self): + logger = logging.getLogger(__name__) cleaned_data = super(AnexoNormaJuridicaForm, self).clean() if not self.is_valid(): return cleaned_data anexo_arquivo = self.cleaned_data.get('anexo_arquivo', False) if anexo_arquivo and anexo_arquivo.size > MAX_DOC_UPLOAD_SIZE: max_size = str(MAX_DOC_UPLOAD_SIZE / (1024 * 1024)) + logger.error("- Arquivo muito grande. ( > {0}MB )".format(max_size)) raise ValidationError( "Arquivo muito grande. ( > {0}MB )".format(max_size)) return cleaned_data @@ -239,17 +252,20 @@ class NormaRelacionadaForm(ModelForm): def clean(self): super(NormaRelacionadaForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data cleaned_data = self.cleaned_data try: + logger.info("- Tentando obter objeto NormaJuridica. ") norma_relacionada = NormaJuridica.objects.get( numero=cleaned_data['numero'], ano=cleaned_data['ano'], tipo=cleaned_data['tipo']) except ObjectDoesNotExist: + logger.error("- A norma a ser relacionada não existe.") msg = _('A norma a ser relacionada não existe.') raise ValidationError(msg) else: @@ -310,6 +326,7 @@ class NormaPesquisaSimplesForm(forms.Form): def clean(self): super(NormaPesquisaSimplesForm, self).clean() + logger = logging.getLogger(__name__) if not self.is_valid(): return self.cleaned_data @@ -321,12 +338,15 @@ class NormaPesquisaSimplesForm(forms.Form): if (data_inicial and data_final and data_inicial > data_final): + logger.error("- Data Final menor que a Data Inicial") raise ValidationError(_( 'A Data Final não pode ser menor que a Data Inicial')) else: condicao1 = data_inicial and not data_final condicao2 = not data_inicial and data_final if condicao1 or condicao2: + logger.error("- Caso pesquise por data, os campos de Data Inicial e " + "Data Final devem ser preenchidos obrigatoriamente") raise ValidationError(_('Caso pesquise por data, os campos de Data Inicial e ' + 'Data Final devem ser preenchidos obrigatoriamente')) diff --git a/sapl/norma/views.py b/sapl/norma/views.py index 2cb4455c9..c632997c2 100755 --- a/sapl/norma/views.py +++ b/sapl/norma/views.py @@ -1,5 +1,6 @@ import re +import logging from django.contrib.auth.mixins import PermissionRequiredMixin from django.core.exceptions import ObjectDoesNotExist @@ -204,11 +205,14 @@ class NormaCrud(Crud): return self.search_url def get_initial(self): + logger = logging.getLogger(__name__) try: + logger.info('- Tentando obter objeto de modelo da esfera da federação.') esfera = sapl.base.models.AppConfig.objects.last( ).esfera_federacao self.initial['esfera_federacao'] = esfera except: + logger.error('- Erro ao obter objeto de modelo da esfera da federação.') pass self.initial['complemento'] = False return self.initial @@ -240,17 +244,20 @@ class NormaCrud(Crud): def recuperar_norma(request): + logger = logging.getLogger(__name__) tipo = TipoNormaJuridica.objects.get(pk=request.GET['tipo']) numero = request.GET['numero'] ano = request.GET['ano'] try: + logger.info('- Tentando obter norma.') norma = NormaJuridica.objects.get(tipo=tipo, ano=ano, numero=numero) response = JsonResponse({'ementa': norma.ementa, 'id': norma.id}) except ObjectDoesNotExist: + logger.error('- Norma buscada não existe. Definida com ementa vazia e id 0.') response = JsonResponse({'ementa': '', 'id': 0}) return response diff --git a/sapl/static/styles/app.css b/sapl/static/styles/app.css new file mode 100755 index 000000000..401c3707b --- /dev/null +++ b/sapl/static/styles/app.css @@ -0,0 +1,494 @@ +@charset "UTF-8"; +.logo img { + width: 40px; + height: 40px; + margin: 5px 15px; } + +.vcenter { + display: inline-block; + vertical-align: middle; + float: none; + padding: 10px; } + +nav.navbar { + border-radius: 0; + font-size: 15px; } + +nav .navbar-nav > li > a { + padding-top: 0px; + padding-bottom: 0px; + line-height: 75px; } + nav .navbar-nav > li > a:hover { + background-color: #23527c; } + +nav .navbar-nav > li:nth-child(2) > .dropdown-menu { + right: auto; } + +nav .navbar-nav:last-child > li:last-child a { + padding-right: 0px; } + +.masthead { + padding: 10px; } + .masthead .nav { + clear: both; } + .masthead .navbar-brand { + color: inherit; + font-size: 24px; } + .masthead .navbar-brand img.img-responsive { + height: 95px; + margin-right: 15px; } + .masthead .navbar-brand small { + color: #93A4AA; + font-size: 75%; + line-height: 25px; } + +.navbar { + margin-bottom: 0; } + +.navbar-brand { + padding: 0px; } + +h1, .h1 { + font-size: 30px; } + +h2, .h2 { + font-size: 24px; } + +h3, .h3 { + font-size: 20px; } + +h4, .h4 { + font-size: 16px; } + +h5, .h5 { + font-size: 14px; } + +h6, .h6 { + font-size: 12px; } + +.page-header { + margin: 20px 0px 10px; } + +.btn:hover, .btn:focus { + color: inherit; } + +.caret { + /* Por padrão caret aponta para baixo*/ } + .caret.top { + transform: rotate(180deg); } + +.btn-default.btn-excluir { + color: #d9534f; } + .btn-default.btn-excluir:hover { + color: #fff; + border-color: #de6764; + background-color: #de6764; } + +.controls-file { + padding: 10px; + border: 1px solid #d6e1e5; + border-radius: 4px; } + .controls-file label.checkbox-inline { + margin: 0px; + display: block; } + +.help-block-danger { + margin: 15px; + padding: 15px; + border: 2px dashed #f00; } + +.controls-radio-checkbox { + padding: 0px; + border: 1px solid #d6e1e5; + border-radius: 4px; + min-height: 20px; } + .controls-radio-checkbox .help-block { + margin: 15px; + padding: 15px; + border: 2px dashed #d6e1e5; } + .controls-radio-checkbox label { + padding: 5px; } + .controls-radio-checkbox label .icons { + top: 5px; + left: 8px; } + .controls-radio-checkbox label.checkbox-inline, .controls-radio-checkbox label.radio-inline { + padding: 8px; + padding-left: 36px; } + .controls-radio-checkbox label.checkbox-inline .icons, .controls-radio-checkbox label.radio-inline .icons { + top: 8px; + left: 8px; } + .controls-radio-checkbox .checkbox, .controls-radio-checkbox .radio, .controls-radio-checkbox .checkbox-inline, .controls-radio-checkbox .radio-inline { + margin: 0; } + .controls-radio-checkbox .checkbox:hover, .controls-radio-checkbox .radio:hover, .controls-radio-checkbox .checkbox-inline:hover, .controls-radio-checkbox .radio-inline:hover { + background-color: #d6e1e5; } + +p.control-label { + font-weight: bold; } + +.legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; + clear: both; } + +.grid-gutter-width-right { + margin-right: 15px; } + +html { + position: relative; + min-height: 100%; } + +body { + margin-bottom: 160px; } + +.footer { + position: absolute; + bottom: 0; + width: 100%; + /* Set the fixed height of the footer here */ + height: 140px; + background: #364347 none repeat scroll 0% 0%; + color: white; + text-align: center; } + .footer p { + color: white; + margin-top: 10px; } + .footer .container { + padding-top: 25px; } + +label { + margin-bottom: 0; + line-height: 1; } + +.control-label { + margin: 0; } + +.form-control-static { + padding-top: 0; + min-height: auto; } + .form-control-static img { + max-width: 100%; } + +.pagination { + padding-top: 25px; } + +.modal .alert { + margin-bottom: 0; } + +fieldset fieldset { + font-size: 95%; } + fieldset fieldset legend { + font-size: 18px; } + +.avatar-parlamentar { + height: 128px; + width: 128px; + margin: 0 auto; + display: table; } + +/* INDEX */ +#conteudo { + position: relative; + padding: 2em 1.5em 1.5em 1.5em; + overflow: hidden; + font-size: 100%; + text-align: left; + min-height: 350px; + max-width: 1000px; + margin: 0 auto; } + +#conteudo a:hover { + color: #444; + -webkit-transition: 0.3s ease-in; + -moz-transition: 0.3s ease-in; + -o-transition: 0.3s ease-in; } + +#homeIndex { + text-align: center; } + +.homeBanner span { + color: white; + font-size: 32px; + font-weight: 600; + display: inline-block; + vertical-align: middle; + padding: 2px 45px 4px; + border: 2px solid; } + +.homeBanner::after { + display: inline-block; + vertical-align: middle; + height: 100%; } + +.homeBlock { + display: inline-block; + position: relative; + background-color: #F3F3F3; + width: 190px; + height: 260px; + margin: 3px; + text-align: center; + font-size: 0; + overflow: hidden; } + +.homeBlock > a { + display: block; + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; } + +.homeBlock::after { + content: ''; + display: inline-block; + vertical-align: middle; + height: 100%; + overflow: visible; + clear: none; + visibility: initial; } + +.homeContent { + position: relative; + padding: 10px; + text-align: justify; + font-size: 14px; + color: #FFF; + opacity: 0; + transition: opacity 0.5s ease; + display: inline-block; + vertical-align: middle; } + +.homeContent p { + display: block; + line-height: 13px; + font-size: 80%; + color: white; } + +.homeIcon { + position: relative; + display: inline-block; + width: 105px; + height: 105px; + border-radius: 50%; + background: #364347; + z-index: 1; } + +.homeIcon::before { + content: ''; + position: absolute; + width: 100%; + height: 100%; + border-radius: 50%; + background: #364347; + top: 0; + left: 0; + transform: scale(0.95); + transition: transform 0.6s ease; } + +.homeIcon img { + position: absolute; + margin: auto; + top: 0; + bottom: 0; + right: 0; + left: 0; + transition: opacity 0.4s 0.4s ease; } + +.homeFront { + position: absolute; + top: 46%; + width: 100%; + font-size: 0; + transform: translateY(-60%); } + +.homeFront h2 { + position: absolute; + margin-top: 18px; + font-size: 22px; + font-weight: 700; + color: #595959 !important; + width: 100%; + padding: 0 6%; + z-index: 0; } + +.homeTitle { + display: block; + height: 32px; + text-align: center; + width: 100%; + opacity: 0; + transition: opacity 0.4s ease; } + +.homeTitle::before { + content: ''; + display: inline-block; + vertical-align: middle; + height: 100%; } + +.homeTitle h2 { + display: inline-block; + vertical-align: middle; + max-width: 110px; + font-size: 14px; + color: white !important; + line-height: 1em; } + +.homeTitle img { + display: inline-block; + vertical-align: middle; + height: 30px; + margin-right: 5px; } + +.homeBlock:hover .homeIcon::before { + transform: scale(3.6) translateY(7px); } + +.homeBlock:hover .homeContent { + opacity: 1; + transition-delay: 0.2s; } + +.homeBlock:hover .homeIcon img { + opacity: 0; + transition-duration: 0.2s; + transition-delay: 0s; } + +.homeBlock:hover .homeTitle { + opacity: 1; } + +h1, h2, h3, h4, h5, h6, form, dl, dt, dd, p, div, img, a { + margin: 0; + padding: 0; } + +p { + margin: 0.5em 0; } + +/* FIM INDEX */ +/* TEMPLATE AJUDA */ +.manual li { + display: list-item; + line-height: 1.5em; + padding-right: 0; } + +.manual li a { + background-color: transparent; + border: none; + border-radius: none; + padding: 0; } + +.manual, .manual ul { + padding-left: 1.5em; + list-style-type: none; + margin-top: 0; + font-size: 100%; } + +/* FIM TEMPLATE AJUDA */ +.container-tabaux .sidebar-tabaux { + background: #fafafa; + margin-top: -70px; + padding: 10px; + border: 1px solid #eee; } + .container-tabaux .sidebar-tabaux .navbar-right { + margin: 0; } + .container-tabaux .sidebar-tabaux .nav-pills > li + li { + margin-left: 0px; } + .container-tabaux .sidebar-tabaux li { + width: 100%; } + .container-tabaux .sidebar-tabaux span { + display: none; } + .container-tabaux .sidebar-tabaux .dropdown-menu { + padding: 0px; + right: 10px; + margin-top: -5px; + overflow: hidden; } + .container-tabaux .sidebar-tabaux .dropdown-menu a { + border: 0px; } + +.container-tabaux ul { + list-style: none; + padding: 0; } + +.container-tabaux .list { + font-family: "SourceSansProSemiBold", Helvetica, Arial, sans-serif; + font-size: 0px; + display: table; + width: 100%; + margin: 0; } + .container-tabaux .list ul { + display: table; + width: 100%; + margin: 0; } + .container-tabaux .list li { + width: calc(50%); + display: inline-block; + position: relative; } + .container-tabaux .list > li { + width: 100%; + border-bottom: 1px solid #eee; + padding-bottom: 20px; + margin-bottom: 20px; } + .container-tabaux .list .head_title { + color: #364347; + font-size: 2.4rem; + text-transform: none; } + .container-tabaux .list a span { + display: none; } + +.btn-cancel-iframe { + position: relative; + text-align: right; + opacity: 0.5; } + .btn-cancel-iframe:hover { + opacity: 1; } + .btn-cancel-iframe a { + padding: 10px; + display: inline-block; } + +@media (max-width: 1199px) { + .masthead .navbar-brand { + font-size: 22px; } + .masthead .navbar-brand img.img-responsive { + height: 60px; + width: 60px; + margin-right: 7.5px; } + .navbar-nav > li > a { + padding-left: 10.71429px; + padding-right: 10.71429px; } } + +@media (max-width: 1091px) { + .navbar-nav > li > a { + padding-left: 7.5px; + padding-right: 7.5px; } } + +@media (min-width: 1092px) and (max-width: 1199px) { + .container { + width: 1070px; } } + +@media print { + a[href]:after { + content: none !important; } } + +/* Estilização da Listagem de Votos em sessões plenárias */ +#styleparlamentar { + border: 0px solid #d6e1e5; + border-top-color: #d6e1e5; + border-right-color: #d6e1e5; + border-bottom-color: #d6e1e5; + border-left-color: #d6e1e5; + border-image-source: initial; + border-image-slice: initial; + border-image-repeat: initial; + font-size: 16px; + line-height: 1.467; + padding: 7px 12px; + height: 40px; + -webkit-appearance: none; + border-radius: 4px; + -webkit-box-shadow: none; + box-shadow: none; + margin-left: 1.0em; } diff --git a/sapl/static/styles/compilacao.css b/sapl/static/styles/compilacao.css new file mode 100755 index 000000000..557ef057a --- /dev/null +++ b/sapl/static/styles/compilacao.css @@ -0,0 +1,1136 @@ +a:link:after, a:visited:after { + content: ""; } + +.test_import:nth-child(even) { + background-color: #ccc; } + +#wait_message { + display: block; + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background-color: rgba(220, 220, 220, 0.75); + z-index: 99; } + #wait_message #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; } + +.text-center { + text-align: center; } + +.cp-notify { + z-index: 9999; + position: fixed; + top: 2em; + left: 50%; + min-width: 600px; + transform: translate(-50%, 0); + transition: all 0.4s ease; + opacity: 0.97; } + .cp-notify.hide { + opacity: 0; + top: -1000px; + display: block !important; + transition: all 0.4s ease; } + .cp-notify .message { + padding: 1em; + border: 2px solid rgba(0, 0, 0, 0.1); + border-radius: 4px; + color: rgba(0, 0, 0, 0.6); + line-height: 1em; + font-size: 1.3em; + text-align: center; + box-shadow: 0 0 100px rgba(0, 0, 0, 0.2); } + +.cp { + /* and dpt */ } + .cp .desativado .dtxt, .cp .dpt .dptt > a.desativado .dtxt, .cp .desativado .dtxt *, .cp .dpt .dptt > a.desativado .dtxt *, .cp .desativado .dpt-link, .cp .dpt .dptt > a.desativado .dpt-link, .cp .desativado .dpt-link *, .cp .dpt .dptt > a.desativado .dpt-link * { + text-decoration: line-through; + color: #999 !important; } + .cp .desativado .dtxt table, .cp .dpt .dptt > a.desativado .dtxt table, .cp .desativado .dtxt table td, .cp .dpt .dptt > a.desativado .dtxt table td, .cp .desativado .dtxt * table, .cp .dpt .dptt > a.desativado .dtxt * table, .cp .desativado .dtxt * table td, .cp .dpt .dptt > a.desativado .dtxt * table td, .cp .desativado .dpt-link table, .cp .dpt .dptt > a.desativado .dpt-link table, .cp .desativado .dpt-link table td, .cp .dpt .dptt > a.desativado .dpt-link table td, .cp .desativado .dpt-link * table, .cp .dpt .dptt > a.desativado .dpt-link * table, .cp .desativado .dpt-link * table td, .cp .dpt .dptt > a.desativado .dpt-link * table td { + border: 1px dotted #ccc; } + .cp a { + text-decoration: none; + cursor: pointer; } + .cp .diff .desativado, .cp .diff .dpt .dptt > a.desativado, .cp .dpt .diff .dptt > a.desativado, .cp .diff .desativado *, .cp .diff .dpt .dptt > a.desativado *, .cp .dpt .diff .dptt > a.desativado * { + text-decoration: line-through; + color: #ddd !important; + font-size: 90%; } + .cp .diff .added { + color: #04DE2C; } + .cp .dpt { + font-size: 1em; + position: relative; } + .cp .dpt.indent { + padding-left: 1em; } + .cp .dpt .ementa { + padding: 2em 0em 2em 35%; + font-weight: bold; } + .cp .dpt .titulo_generico, .cp .dpt .anexo, .cp .dpt .disp_preliminares, .cp .dpt .disp_gerais, .cp .dpt .disp_transitorias, .cp .dpt .disp_finais, .cp .dpt .parte, .cp .dpt .livro, .cp .dpt .titulo, .cp .dpt .capitulo, .cp .dpt .secao, .cp .dpt .subsecao, .cp .dpt .itemsecao { + text-align: center; + margin-bottom: 1em; + font-size: 1.15em; + margin-top: 3em; } + .cp .dpt .titulo { + margin-top: 2em; } + .cp .dpt .capitulo { + margin-top: 1.5em; + font-size: 1.15em; } + .cp .dpt .secao { + margin-top: 1.2em; + margin-bottom: 0.7em; + font-weight: bold; + font-size: 1.15em; } + .cp .dpt .subsecao, + .cp .dpt .itemsecao { + margin-top: 1em; + margin-bottom: 0.6em; + font-weight: bold; + font-size: 1.15em; } + .cp .dpt .artigo { + font-size: 1.15em; + float: left; } + .cp .dpt .artigo .dptt { + position: relative; } + .cp .dpt .caput { + margin-top: 0.3333em; + font-size: 1.15em; } + .cp .dpt .paragrafo { + font-size: 1.1em; + margin-top: 0.2222em; } + .cp .dpt .inciso { + font-size: 1.1em; + margin-top: 0.1667em; } + .cp .dpt .alinea { + font-size: 1.0em; + margin-top: 2px; } + .cp .dpt .item { + font-size: 1.0em; + margin-top: 2px; } + .cp .dpt .assinatura { + margin-top: 0.6em; + font-size: 1.15em; } + .cp .dpt .fecho_lei { + margin-top: 0.6em; + font-size: 1.15em; } + .cp .dpt .page-break { + page-break-before: always; } + .cp .dpt .bloco_alteracao { + padding-left: 10%; + font-style: italic; + color: #018; } + .cp .dpt .bloco_alteracao a { + text-decoration: underline; } + .cp .dpt .bloco_alteracao a, .cp .dpt .bloco_alteracao table, .cp .dpt .bloco_alteracao table td { + color: #018 !important; } + .cp .dpt .dn { + /* Notas de Dispositivo*/ + font-weight: normal; + position: relative; + font-size: 70%; } + .cp .dpt .dn p, .cp .dpt .dn ul { + font-weight: normal; + margin: 0 0 0 0; + list-style: none; + padding: 0; } + .cp .dpt .dn .dnl { + /* Lista Notas de Dispositivo*/ + display: block; + text-align: left !important; } + .cp .dpt .dn .dnl * { + display: inline; } + .cp .dpt .dn .dnl .bullet { + padding: 0 0.333em; + display: inline-block; } + .cp .dpt .dn .dnl .dnli { + min-height: 2.5em; } + .cp .dpt .dn .dnl .dnli:hover ul { + transition: opacity 0.5s linear, clip 0s 0.3s; + clip: auto; + opacity: 1; + background: rgba(230, 230, 230, 0.9); } + .cp .dpt .dn .dnl .dnli ul { + transition: opacity 0.5s linear, clip 0s 0.3s; + clip: rect(0, 0, 0, 0); + opacity: 0; + position: absolute; + background: transparent; + right: 0; + padding: 0.2em 0.5em 0em 0.5em; + border: 1px solid #c7e3d3; + border-top: 0px; + font-size: 1.5rem; } + .cp .dpt .dn .dnl .dnli ul li { + display: table-cell; + color: #aaa; } + .cp .dpt .dn .dnl .dnli ul li:hover { + color: #787; } + .cp .dpt .dn .dnl .dnli ul li:hover a { + color: #27AE60 !important; } + .cp .dpt .dn .dnl .dnli ul li .nowner { + color: #27AE60 !important; } + .cp .dpt .dn .dnl .dnli .ntitulo { + font-weight: bold; + color: #03A203; + text-decoration: none; } + .cp .dpt .dn .dnl .dnli .ntitulo a { + color: #294 !important; } + .cp .dpt .dn .dnl .dnli .ntexto { + color: #06D806; } + .cp .dpt .dn .dnl .dnli .ntexto a { + color: #03A203 !important; } + .cp .dpt .dn .dnl:hover { + display: block; } + .cp .dpt .dn .dnl:hover * { + display: block; } + .cp .dpt .dn .dnl:hover > .bullet { + display: none; } + .cp .dpt .dn .dnl:hover .dnli { + margin-top: 0.5em; + border-top: 1px solid #c7e3d3; } + .cp .dpt .dptt { + clear: left; } + .cp .dpt .dptt > a { + color: #000000; } + .cp .dpt .dptt > a.nota-alteracao { + color: #02baf2; + font-size: 0.75em; } + .cp .dpt .dptt > a.nota-alteracao:hover { + text-decoration: underline; } + .cp .dpt .dptt .dne { + position: absolute; + display: block; + right: 0; + left: 0; + top: 0; + height: 0; + transform: scaleX(0); + transform-origin: right; + transition: all 0.3s ease; + border-top: 1px solid #2980B9; } + .cp .dpt .dptt .dne ul.btns-action { + list-style: none; + padding: 0; + position: absolute; + right: 0; + background-color: #2980B9; } + .cp .dpt .dptt .dne ul.btns-action li { + float: left; } + .cp .dpt .dptt .dne ul.btns-action li:hover { + background-color: rgba(0, 0, 0, 0.1); } + .cp .dpt .dptt .dne ul.btns-action li a { + color: white; + padding: 0.15em 1em 0; + display: inline-block; } + .cp .dpt .dptt .dne-nota { + position: relative; + transform: scaleX(1); + height: auto; + border-top: 0px; } + .cp .dpt .dptt .dne-nota ul.btns-action { + display: none; } + .cp .dpt .dptt .dne-nota .dne-form { + margin: 1em -2em 0em; + text-align: left; + font-size: 1.6rem; } + .cp .dpt .dptt:hover .dne { + height: 0.1667rem; + transform: scaleX(1); + transition-delay: 1s; } + .cp .dpt .dptt:hover .dne-nota { + height: auto; + transition-delay: 0s; } + .cp .tipo-vigencias { + list-style: none; + position: fixed; + bottom: 0px; + left: 50%; + transform: translate(-50%, 0); + margin: 0; + padding: 0; + background-color: #2980B9; + z-index: 1000; + opacity: 0.9; + transition: all 0.3s ease-in-out; } + .cp .tipo-vigencias li { + display: inline-block; + border-left: 1px solid #fff; + float: left; } + .cp .tipo-vigencias li a { + color: white; + padding: 0.3em 1em 0; + display: inline-block; + font-size: 110%; + cursor: pointer; } + .cp .tipo-vigencias li a.selected { + background-color: rgba(0, 0, 0, 0.5); } + .cp .tipo-vigencias li:hover { + background-color: rgba(0, 0, 0, 0.2); } + .cp .tipo-vigencias:hover { + opacity: 1; } + +/* end cp */ +.cp.cpe { + /* fim .dpt */ + /* fim dpt-alts */ } + .cp.cpe .desativado, .cp.cpe .dpt .dptt > a.desativado { + text-decoration: line-through; + color: #999 !important; } + .cp.cpe .desativado table, .cp.cpe .dpt .dptt > a.desativado table, .cp.cpe .desativado table td, .cp.cpe .dpt .dptt > a.desativado table td { + border: 1px dotted #ccc; } + .cp.cpe .desativado a.nota-alteracao * { + color: #02baf2 !important; } + .cp.cpe .dpt { + display: block; } + .cp.cpe .dpt > .dpt-actions-fixed { + position: absolute; + right: -0.8em; + top: -0.8em; + z-index: 3; + opacity: 0; } + .cp.cpe .dpt > .dpt-actions-fixed .activate { + display: none; } + .cp.cpe .dpt > .dpt-actions-fixed .deactivate { + display: inline; } + .cp.cpe .dpt > .dpt-actions-fixed .btn-dpt-edit.btn-default { + color: #333; } + .cp.cpe .dpt > .dpt-actions-fixed .btn-dpt-edit.btn-default:hover { + color: #fff; + background-color: #02baf2; } + .cp.cpe .dpt > .dpt-actions, .cp.cpe .dpt > .dpt-actions-bottom { + display: none; } + .cp.cpe .dpt > .dpt-text { + cursor: text; + min-height: 30px; + border: 1px solid transparent; } + .cp.cpe .dpt > .dpt-text:hover, .cp.cpe .dpt > .dpt-text.hover-fixed { + background-color: rgba(0, 0, 0, 0.01); + color: #2980B9; + border: 1px solid #eee; + transition: color 0.3s ease; } + .cp.cpe .dpt > .dpt-text.artigo { + float: none; } + .cp.cpe .dpt > .dpt-text a.link-rotulo { + color: #000; } + .cp.cpe .dpt:hover > .dpt-actions-fixed { + opacity: 1; } + .cp.cpe .dpt:hover > .dpt-actions-fixed:hover ~ .dpt-text { + background-color: rgba(0, 0, 0, 0.01); + color: #2980B9; + border: 1px solid #eee; + transition: color 0.3s ease; } + .cp.cpe .dpt .semtexto { + font-weight: bold; + color: #9aaed6; } + .cp.cpe .dpt .semtexto:hover { + color: #5f76a4; } + .cp.cpe .dpt-alts { + margin: 0; + margin-bottom: 1em; + padding: 0; + background-color: transparent; + min-height: 100px; + border: 2px dashed #fff; } + .cp.cpe .dpt-alts:hover { + border-color: #d9ddde; } + .cp.cpe .dpt-alts:empty { + border-color: #ddd; } + .cp.cpe .dpt-alts.drag { + width: 100% !important; + border-color: #d9ddde; } + .cp.cpe .dpt-alts.drag .dpt { + transition-duration: 0s !important; } + .cp.cpe .dpt-alts .dpt { + width: 100% !important; + box-shadow: 0 -1px 0 #e5e5e5, 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24); + padding: 0; + margin: 0; + background-color: #edf0f1; + height: auto !important; + min-height: 2em; + z-index: 1; } + .cp.cpe .dpt-alts .dpt:not(:first-child) { + border-top: 1px solid white; } + .cp.cpe .dpt-alts .dpt > .dpt-text { + padding: 0.3em 1em; + margin-top: 0; + margin-bottom: 0; } + .cp.cpe .dpt-alts .dpt > .dpt-text a.link-rotulo { + text-decoration: underline; } + .cp.cpe .dpt-alts .dpt-selected.dpt { + margin: 0em -0.5em; } + .cp.cpe .dpt-selected.dpt { + width: auto !important; + margin: 1em -0.5em; + border: 1px solid #fad46b !important; + padding: 0; + background-color: #fafafa; + border-radius: 3px; + z-index: 4; } + .cp.cpe .dpt-selected.dpt > .dpt-text { + border: 1px solid transparent; } + .cp.cpe .dpt-selected.dpt > .dpt-text:hover { + border: 1px solid transparent; + background-color: transparent; } + .cp.cpe .dpt-selected.dpt > .dpt-form { + margin-bottom: 0em; } + .cp.cpe .dpt-selected.dpt > .dpt-actions, .cp.cpe .dpt-selected.dpt > .dpt-actions-bottom { + display: table; + background-color: #e5e5e5; + padding: 1em; + margin-bottom: 0em; + width: 100%; } + .cp.cpe .dpt-selected.dpt > .dpt-actions > .btn-action, .cp.cpe .dpt-selected.dpt > .dpt-actions-bottom > .btn-action { + display: table-cell; + float: none; } + .cp.cpe .dpt-selected.dpt > .dpt-actions .btn-excluir, .cp.cpe .cp.cpe1_old_apagar .dpt-selected.dpt > .dpt-actions .csform .actions_inserts > li > a.btn-salvar, .cp.cpe1_old_apagar .cp.cpe .dpt-selected.dpt > .dpt-actions .csform .actions_inserts > li > a.btn-salvar, .cp.cpe .dpt-selected.dpt > .dpt-actions-bottom .btn-excluir, .cp.cpe .cp.cpe1_old_apagar .dpt-selected.dpt > .dpt-actions-bottom .csform .actions_inserts > li > a.btn-salvar, .cp.cpe1_old_apagar .cp.cpe .dpt-selected.dpt > .dpt-actions-bottom .csform .actions_inserts > li > a.btn-salvar { + display: inline-block; + opacity: 0.3; } + .cp.cpe .dpt-selected.dpt > .dpt-actions .btn-excluir:hover, .cp.cpe .cp.cpe1_old_apagar .dpt-selected.dpt > .dpt-actions .csform .actions_inserts > li > a.btn-salvar:hover, .cp.cpe1_old_apagar .cp.cpe .dpt-selected.dpt > .dpt-actions .csform .actions_inserts > li > a.btn-salvar:hover, .cp.cpe .dpt-selected.dpt > .dpt-actions-bottom .btn-excluir:hover, .cp.cpe .cp.cpe1_old_apagar .dpt-selected.dpt > .dpt-actions-bottom .csform .actions_inserts > li > a.btn-salvar:hover, .cp.cpe1_old_apagar .cp.cpe .dpt-selected.dpt > .dpt-actions-bottom .csform .actions_inserts > li > a.btn-salvar:hover { + opacity: 1; } + .cp.cpe .dpt-selected.dpt > .dpt-actions-bottom { + margin: 0; } + .cp.cpe .dpt-selected .dpt-block { + border-top: 1px solid #e5e5e5 !important; + opacity: 0.6; + transition: opacity 0.4s ease; } + .cp.cpe .dpt-selected .dpt-block:hover { + opacity: 1; } + .cp.cpe .dpt-selected .dpt:only-child { + /*border-bottom: 1px solid #e5e5e5 !important;*/ } + .cp.cpe .dpt-selected .dpt:not(:last-child) { + /*border-bottom: 1px solid #e5e5e5 !important;*/ } + .cp.cpe .dpt-selected .dpt-text { + opacity: 0.7; + margin: 0; + padding: 0.7em; } + .cp.cpe .dpt-selected .dpt-text:hover { + opacity: 1; + background-color: #f5f5f5; } + .cp.cpe .dpt-selected .dpt-alts { + margin: 1em; } + .cp.cpe .dpt-selected .dpt-alts .dpt { + box-shadow: 0 0 0; } + .cp.cpe .dpt-selected > .dpt-actions-fixed { + opacity: 1; + top: -12px; + right: 0.5em; } + .cp.cpe .dpt-selected > .dpt-actions-fixed .activate { + display: inline; } + .cp.cpe .dpt-selected > .dpt-actions-fixed .deactivate { + display: none; } + .cp.cpe .dpt-selected > .dpt-actions-fixed .btn-dpt-edit { + padding-top: 2px; + padding-bottom: 1px; } + .cp.cpe .dpt-selected > .dpt-actions-fixed .btn-dpt-edit.btn-default { + background-color: #fad46b; + border: 1px solid #fad46b; } + .cp.cpe .dpt-selected .dropdown-menu.dropdown-menu-left { + right: auto !important; + left: 0; + padding: 2px 0; } + .cp.cpe .dpt-selected .dropdown-menu.dropdown-menu-left > .top.arrow { + right: 88%; + left: auto; } + .cp.cpe .dpt-selected .dropdown-menu li a { + padding-top: 2px; + padding-bottom: 2px; } + .cp.cpe .dpt-selected .btn-group .radius-right { + border-bottom-right-radius: 4px !important; + border-top-right-radius: 4px !important; } + .cp.cpe .dpt-selected:hover > .dpt-actions-fixed { + opacity: 1; } + +.cp.cpe1_old_apagar { + margin-bottom: 15em; + /* fim dpt */ + /* fim dpt-selected */ } + .cp.cpe1_old_apagar .desativado, .cp.cpe1_old_apagar .dpt .dptt > a.desativado, .cp.cpe1_old_apagar .desativado *, .cp.cpe1_old_apagar .dpt .dptt > a.desativado * { + text-decoration: line-through; + color: #999 !important; } + .cp.cpe1_old_apagar .desativado table, .cp.cpe1_old_apagar .dpt .dptt > a.desativado table, .cp.cpe1_old_apagar .desativado table td, .cp.cpe1_old_apagar .dpt .dptt > a.desativado table td, .cp.cpe1_old_apagar .desativado * table, .cp.cpe1_old_apagar .dpt .dptt > a.desativado * table, .cp.cpe1_old_apagar .desativado * table td, .cp.cpe1_old_apagar .dpt .dptt > a.desativado * table td { + border: 1px dotted #ccc; } + .cp.cpe1_old_apagar a { + text-decoration: none; + cursor: pointer; } + .cp.cpe1_old_apagar .dpt { + position: relative; + display: block; } + .cp.cpe1_old_apagar .dpt .semtexto { + font-weight: bold; + color: #BFD1F6; } + .cp.cpe1_old_apagar .dpt .artigo { + float: none; } + .cp.cpe1_old_apagar .dpt .caput { + margin-top: 0; } + .cp.cpe1_old_apagar .dpt > .actions_right, .cp.cpe1_old_apagar .dpt-selected .csform .dpt > .actions_left { + color: #fff; + right: 0em; + position: absolute; + opacity: 0; + transition: all 0.4s ease-in-out; + z-index: 1000; } + .cp.cpe1_old_apagar .dpt > .actions_right a.btn-bloco, .cp.cpe1_old_apagar .dpt-selected .csform .dpt > .actions_left a.btn-bloco { + background-color: #3498db; + color: #ffffff !important; + padding: 8px 18px 6px; + display: inline-block; + line-height: 1; + float: right; } + .cp.cpe1_old_apagar .dpt > .actions_right a.btn-bloco:hover, .cp.cpe1_old_apagar .dpt-selected .csform .dpt > .actions_left a.btn-bloco:hover { + opacity: 1; + background-image: -webkit-linear-gradient(top, #1c81c4, #0b6dad); + background-image: -moz-linear-gradient(top, #1c81c4, #0b6dad); + background-image: -ms-linear-gradient(top, #1c81c4, #0b6dad); + background-image: -o-linear-gradient(top, #1c81c4, #0b6dad); + background-image: linear-gradient(to bottom, #1c81c4, #0b6dad); } + .cp.cpe1_old_apagar .dpt:hover > .actions_right, .cp.cpe1_old_apagar .dpt-selected .csform .dpt:hover > .actions_left { + opacity: 1; } + .cp.cpe1_old_apagar .dpt .bloco { + display: block; + clear: both; } + .cp.cpe1_old_apagar .dpt .bloco *:hover { + color: #27AE60; } + .cp.cpe1_old_apagar .dpt .bloco .de { + cursor: pointer; } + .cp.cpe1_old_apagar .dpt .articulacao { + border-top: 2px solid #e5e5e5; + margin: 2em 0; } + .cp.cpe1_old_apagar .dpt .bloco_alteracao { + margin: 1em 0; + padding: 0em; + background-color: transparent; + min-height: 100px; + border: 2px dashed #fff; } + .cp.cpe1_old_apagar .dpt .bloco_alteracao:hover { + border-color: #d9ddde; } + .cp.cpe1_old_apagar .dpt .bloco_alteracao.drag { + width: 100% !important; + border-color: #d9ddde; } + .cp.cpe1_old_apagar .dpt .bloco_alteracao.drag .dpt { + transition-duration: 0s !important; } + .cp.cpe1_old_apagar .dpt .bloco_alteracao .dpt { + width: 100% !important; + box-shadow: 0 -1px 0 #e5e5e5, 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24); + padding: 0.3em 1em; + margin: 0; + background-color: #edf0f1; + z-index: 1; } + .cp.cpe1_old_apagar .dpt .bloco_alteracao .dpt:not(:first-child) { + border-top: 1px solid white; } + .cp.cpe1_old_apagar .dpt .bloco_alteracao .dpt.ui-draggable div { + cursor: pointer; } + .cp.cpe1_old_apagar .dpt .bloco_alteracao .dpt.dpt-comp-selected { + transition: all 0.3s ease; + width: auto !important; + margin: 2em -3.7em; + box-shadow: 0 0 6px rgba(0, 0, 0, 0.16), 0 6px 12px rgba(0, 0, 0, 0.32); } + .cp.cpe1_old_apagar .dpt-selected { + font-size: 1em; + border: 0px solid #CCC; + margin: 1em -1.8em 1em -1.8em; + padding: 2.2em 2.2em 1.6em 2.2em; + box-shadow: -4px 15px 15px rgba(0, 0, 0, 0.1), 0px 6px 6px rgba(0, 0, 0, 0.23); + background-image: -webkit-linear-gradient(top, #eaeaee, #ddd); + background-image: -moz-linear-gradient(top, #eaeaee, #ddd); + background-image: -ms-linear-gradient(top, #eaeaee, #ddd); + background-image: -o-linear-gradient(top, #eaeaee, #ddd); + background-image: linear-gradient(to bottom, #eaeaee, #ddd); + /* fim csform*/ } + .cp.cpe1_old_apagar .dpt-selected ul { + list-style: none; + margin: 0; + padding: 0; } + .cp.cpe1_old_apagar .dpt-selected .semtexto { + color: #999; } + .cp.cpe1_old_apagar .dpt-selected .bloco { + opacity: 0.5; } + .cp.cpe1_old_apagar .dpt-selected .bloco:hover { + opacity: 1; } + .cp.cpe1_old_apagar .dpt-selected .bloco a:hover { + background: transparent; } + .cp.cpe1_old_apagar .dpt-selected > .bloco { + opacity: 1; + margin: 1em; } + .cp.cpe1_old_apagar .dpt-selected .bloco_alteracao { + margin: 0; + padding: 1em; + border: 0 transparent; + background-image: -webkit-linear-gradient(top, #eaeaee, #ddd); + background-image: -moz-linear-gradient(top, #eaeaee, #ddd); + background-image: -ms-linear-gradient(top, #eaeaee, #ddd); + background-image: -o-linear-gradient(top, #eaeaee, #ddd); + background-image: linear-gradient(to bottom, #eaeaee, #ddd); } + .cp.cpe1_old_apagar .dpt-selected .bloco_alteracao:hover { + border-color: transparent; } + .cp.cpe1_old_apagar .dpt-selected .bloco_alteracao.drag { + width: 100% !important; } + .cp.cpe1_old_apagar .dpt-selected .bloco_alteracao.drag .dpt { + transition-duration: 0s !important; } + .cp.cpe1_old_apagar .dpt-selected .bloco_alteracao .dpt { + width: auto !important; + transition: all 0.3s ease; + background-color: white; } + .cp.cpe1_old_apagar .dpt-selected .bloco_alteracao .dpt:not(:first-child) { + border-top: 0px solid white; } + .cp.cpe1_old_apagar .dpt-selected > .dpt { + padding: 0; } + .cp.cpe1_old_apagar .dpt-selected > .dpt:last-child { + padding-bottom: 1em; } + .cp.cpe1_old_apagar .dpt-selected > .actions_right a.btn-bloco, .cp.cpe1_old_apagar .dpt-selected .csform .dpt-selected > .actions_left a.btn-bloco { + display: none; } + .cp.cpe1_old_apagar .dpt-selected .csform { + /* compilacao simple form */ + display: block; + clear: both; + z-index: 9; + position: static; + /* actions_inserts */ } + .cp.cpe1_old_apagar .dpt-selected .csform .btns-action { + -webkit-animation: fadeIn 1s ease-in-out; + -moz-animation: fadeIn 1s ease-in-out; + -o-animation: fadeIn 1s ease-in-out; + opacity: 1; + position: absolute; + display: table; + transition: all 0.4s ease-in-out; } + .cp.cpe1_old_apagar .dpt-selected .csform .btns-action a { + color: #16407c; + display: block; + background: transparent; + vertical-align: middle; + text-align: center; + font-weight: normal; + text-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + padding: 0.33em 0.4em; } + .cp.cpe1_old_apagar .dpt-selected .csform .btns-action > li { + position: relative; + display: table-cell; + vertical-align: top; } + .cp.cpe1_old_apagar .dpt-selected .csform .btns-action > li:hover { + background-color: rgba(255, 255, 255, 0.5); } + .cp.cpe1_old_apagar .dpt-selected .csform .btns-action > li:hover > a { + text-shadow: 0 0 5px #777; + color: #0a5; } + .cp.cpe1_old_apagar .dpt-selected .csform .label_status { + position: absolute; + bottom: 0; + right: 0; + color: #889; + padding: 0.3em; + font-size: 80%; + text-align: right; + z-index: 15; + display: table; } + .cp.cpe1_old_apagar .dpt-selected .csform .label_status li { + display: table-cell; + padding: 0 0.5em; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_parents { + z-index: 11; + top: 0em; + left: 0em; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_parents a { + padding: 0.62em; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_parents div, .cp.cpe1_old_apagar .dpt-selected .csform .actions_parents li { + font-size: 80%; + display: table-cell; + vertical-align: middle; + border-right: 1px solid #CCC; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_parents div { + padding: 0 0.4em; + font-stretch: condensed; + font-variant: small-caps; + font-weight: bold; + text-shadow: 0 0 10px #fff; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_parents > li:hover a { + color: #16407c; + font-weight: normal; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_top, .cp.cpe1_old_apagar .dpt-selected .csform .actions_bottom { + top: 0em; + right: 0em; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_top a, .cp.cpe1_old_apagar .dpt-selected .csform .actions_bottom a { + padding-right: 1em; + padding-left: 1em; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_top li, .cp.cpe1_old_apagar .dpt-selected .csform .actions_bottom li { + display: table-cell; + vertical-align: middle; + border-left: 1px solid #CCC; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_bottom { + top: auto; + left: 0; + bottom: 0; + display: inline-block; + border-top: 1px solid #CCC; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_bottom a { + padding: 0 0.4em; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_bottom li { + border: 0px; + border-right: 1px solid #CCC; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_right, .cp.cpe1_old_apagar .dpt-selected .csform .actions_left { + top: 2.2em; + right: 0em; + bottom: 0; + display: block; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_right li, .cp.cpe1_old_apagar .dpt-selected .csform .actions_left li { + width: 2.2em; + display: block; + border-bottom: 1px solid #CCC; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_right li:first-child, .cp.cpe1_old_apagar .dpt-selected .csform .actions_left li:first-child { + border-top: 1px solid #CCC; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_left { + right: auto; + left: 0em; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts { + background: transparent; + position: relative; + z-index: 19; + display: table; + width: 100%; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li { + display: table-cell; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li:hover > a { + background-image: -webkit-linear-gradient(top, #1c81c4, #0b6dad); + background-image: -moz-linear-gradient(top, #1c81c4, #0b6dad); + background-image: -ms-linear-gradient(top, #1c81c4, #0b6dad); + background-image: -o-linear-gradient(top, #1c81c4, #0b6dad); + background-image: linear-gradient(to bottom, #1c81c4, #0b6dad); } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > a { + background-image: -webkit-linear-gradient(top, #3498DB, #2980C9); + background-image: -moz-linear-gradient(top, #3498DB, #2980C9); + background-image: -ms-linear-gradient(top, #3498DB, #2980C9); + background-image: -o-linear-gradient(top, #3498DB, #2980C9); + background-image: linear-gradient(to bottom, #3498DB, #2980C9); + border-right: 1px solid #fff; + padding: 0.2em; + display: block; + color: white; + text-align: center; + white-space: nowrap; + /* btn-excluir */ } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > a.btn-excluir, .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > a.btn-salvar { + text-align: left; + background: #A70808; + color: #c99; + padding-left: 1.7em; + position: relative; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > a.btn-excluir:hover, .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > a.btn-salvar:hover { + background-color: #c70808; + color: #ecc; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > a.btn-excluir::before, .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > a.btn-salvar::before { + z-index: 20; + position: absolute; + background: url(/static/img/icon_delete_white.png) no-repeat 50% 50%; + content: ""; + top: 0; + left: 0; + display: block; + color: black; + margin-left: 0.4em; + height: 100%; + width: 2em; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > a.btn-salvar { + background: #1f8b4d; + color: white; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > a.btn-salvar:hover { + background: #2d9c5c; + color: white; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > a.btn-salvar::before { + background: url(/static/img/icon_save_white.png) no-repeat 50% 50%; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > a span { + padding: 0 0.7em; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li:last-child > a { + border-right: 0px solid #fff; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > ul li:nth-child(even) a { + background: #3385CA; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > ul li a { + border-right: 1px solid #fff; + display: block; + color: white; + background: #2980C9; + font-size: 80%; + padding: 0.23em 1em; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > ul li a:hover { + background: #0a5ea4; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.add_prior { + table-layout: fixed; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.add_prior > ul { + transform: translateY(30px); + transition: transform 0.1s linear, opacity 0.1s linear, clip 0s 0.3s; + clip: rect(0, 0, 0, 0); + opacity: 0; + position: absolute; + margin-left: 0.5em; + box-shadow: 0px 6px 18px rgba(0, 0, 0, 0.19), 0px 2px 6px rgba(0, 0, 0, 0.23); + -webkit-transition-delay: 0.4s; + /* Safari */ + transition-delay: 0.4s; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.add_prior > ul li a { + border-right: 0px !important; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.add_prior > ul li:first-child::before { + border-width: 0.375rem; + border-style: inset inset solid; + content: ""; + display: block; + height: 0px; + width: 0px; + border-color: transparent transparent #3385CA; + position: absolute; + top: -0.71rem; + left: 0.9375rem; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.add_prior > ul li:first-child:hover::before { + border-color: transparent transparent #0A5EA4; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.add_prior > ul::after { + content: ""; + position: absolute; + z-index: -1; + left: 0; + top: rem-calc(-25px); + height: rem-calc(25px); + width: 100%; + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.add_prior:hover > ul { + transform: translateY(7px); + transition: transform 0.4s linear, opacity 0.4s linear, clip 0s 0.2s; + opacity: 1; + clip: rect(-100px, 2000px, 2000px, -100px); } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.menu_excluir { + display: block; + position: static; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.menu_excluir > ul { + transform: translateY(30px); + transition: transform 0.1s linear, opacity 0.1s linear, clip 0s 0.3s; + clip: rect(0, 0, 0, 0); + opacity: 0; + position: absolute; + margin-left: 0.5em; + box-shadow: 0px 6px 18px rgba(0, 0, 0, 0.19), 0px 2px 6px rgba(0, 0, 0, 0.23); + -webkit-transition-delay: 0.4s; + /* Safari */ + transition-delay: 0.4s; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.menu_excluir > ul li a { + border-right: 0px !important; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.menu_excluir > ul li:first-child::before { + border-width: 0.375rem; + border-style: inset inset solid; + content: ""; + display: block; + height: 0px; + width: 0px; + border-color: transparent transparent #3385CA; + position: absolute; + top: -0.71rem; + left: 0.9375rem; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.menu_excluir > ul li:first-child:hover::before { + border-color: transparent transparent #0A5EA4; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.menu_excluir > ul::after { + content: ""; + position: absolute; + z-index: -1; + left: 0; + top: rem-calc(-25px); + height: rem-calc(25px); + width: 100%; + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.menu_excluir:hover > ul { + transform: translateY(7px); + transition: transform 0.4s linear, opacity 0.4s linear, clip 0s 0.2s; + opacity: 1; + clip: rect(-100px, 2000px, 2000px, -100px); } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.menu_excluir > ul { + right: 0.5em; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.menu_excluir > ul li a { + background-color: #A70808; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.menu_excluir > ul li a:hover { + background: #c70808; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.menu_excluir > ul li:first-child::before { + border-color: transparent transparent #A70808; + right: 10%; + left: auto; } + .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li.menu_excluir > ul li:first-child:hover::before { + border-color: transparent transparent #c70808; } + .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante, .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante_fixo { + z-index: 2000; } + .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante > li > ul, .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante_fixo > li > ul { + transform: translateY(30px); + transition: transform 0.1s linear, opacity 0.1s linear, clip 0s 0.3s; + clip: rect(0, 0, 0, 0); + opacity: 0; + position: absolute; + margin-left: 0.5em; + box-shadow: 0px 6px 18px rgba(0, 0, 0, 0.19), 0px 2px 6px rgba(0, 0, 0, 0.23); + -webkit-transition-delay: 0.4s; + /* Safari */ + transition-delay: 0.4s; } + .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante > li > ul li a, .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante_fixo > li > ul li a { + border-right: 0px !important; } + .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante > li > ul li:first-child::before, .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante_fixo > li > ul li:first-child::before { + border-width: 0.375rem; + border-style: inset inset solid; + content: ""; + display: block; + height: 0px; + width: 0px; + border-color: transparent transparent #3385CA; + position: absolute; + top: -0.71rem; + left: 0.9375rem; } + .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante > li > ul li:first-child:hover::before, .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante_fixo > li > ul li:first-child:hover::before { + border-color: transparent transparent #0A5EA4; } + .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante > li > ul::after, .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante_fixo > li > ul::after { + content: ""; + position: absolute; + z-index: -1; + left: 0; + top: rem-calc(-25px); + height: rem-calc(25px); + width: 100%; + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); } + .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante > li:hover > ul, .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante_fixo > li:hover > ul { + transform: translateY(7px); + transition: transform 0.4s linear, opacity 0.4s linear, clip 0s 0.2s; + opacity: 1; + clip: rect(-100px, 2000px, 2000px, -100px); } + .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante > li.menu_excluir > ul li:first-child::before, .cp.cpe1_old_apagar .dpt-selected .csform .menu_flutuante_fixo > li.menu_excluir > ul li:first-child::before { + right: auto; + left: 0.9375rem; } + .cp.cpe1_old_apagar .dpt-selected .csform textarea { + margin: 0; + resize: vertical; + min-height: 12.6em; + border: 0px; + font-size: 120%; + width: 100%; } + .cp.cpe1_old_apagar .dpt-selected .csform textarea:focus { + background: #fff; } + .cp.cpe1_old_apagar .dpt-selected .csform textarea::-webkit-input-placeholder { + color: #c70808; + opacity: 0.6; + font-size: 80%; } + .cp.cpe1_old_apagar .dpt-selected .csform textarea:-moz-placeholder { + /* Firefox 18- */ + color: #c70808; } + .cp.cpe1_old_apagar .dpt-selected .csform textarea::-moz-placeholder { + /* Firefox 19+ */ + color: #c70808; } + .cp.cpe1_old_apagar .dpt-selected .csform textarea:-ms-input-placeholder { + color: #c70808; + opacity: 0.6; } + .cp.cpe1_old_apagar .selected { + background-color: rgba(255, 255, 255, 0.5); } + .cp.cpe1_old_apagar .selected a:hover { + color: #16407c !important; + font-weight: normal !important; } + +.result-busca-dispositivo, .lista-dispositivo { + padding: 0 0 1em; + min-height: 3em; } + .result-busca-dispositivo ul, .lista-dispositivo ul { + list-style: none; + margin: 0; + padding: 1em 0 0; + transition: all 2s linear; + clear: both; } + .result-busca-dispositivo ul li, .lista-dispositivo ul li { + display: table; + border-collapse: separate; + border-bottom: 1px solid white; + width: 100%; } + .result-busca-dispositivo ul li.ta_title, .lista-dispositivo ul li.ta_title { + background-color: rgba(0, 0, 0, 0.15); + border-radius: 4px 4px 0 0; + width: 100%; } + .result-busca-dispositivo ul li:last-child .itemlabel, .lista-dispositivo ul li:last-child .itemlabel { + border-radius: 0 0 4px 0px; + margin: 0px; } + .result-busca-dispositivo ul li:last-child .iteminput, .lista-dispositivo ul li:last-child .iteminput { + border-radius: 0 0 0px 4px; } + .result-busca-dispositivo ul li .iteminput, .lista-dispositivo ul li .iteminput { + background-color: rgba(0, 0, 0, 0.1); + border-right: 1px solid white; + display: table-cell; + padding: 0.5em; + vertical-align: middle; + text-align: center; } + .result-busca-dispositivo ul li .iteminput input, .lista-dispositivo ul li .iteminput input { + margin: 0; } + .result-busca-dispositivo ul li .itemlabel, .lista-dispositivo ul li .itemlabel { + background-color: rgba(0, 0, 0, 0.1); + display: table-cell; + padding: 0.5em; + vertical-align: middle; + width: 100%; } + .result-busca-dispositivo ul li .itemlabel .artigo, .lista-dispositivo ul li .itemlabel .artigo { + float: none; } + .result-busca-dispositivo .nomenclatura_heranca, .lista-dispositivo .nomenclatura_heranca { + font-size: 90%; + color: #057dba; + display: inline; } + +.lista-dispositivo.controls-radio-checkbox { + border: 0px; } + +.label_vigencia { + border-top: 1px solid white; + display: inline-block; + color: #555; } + .label_vigencia span { + color: gray; } + +.cp-nav-parents > .dropdown-menu { + left: 0; + right: auto; } + .cp-nav-parents > .dropdown-menu::before { + content: ''; + position: absolute; + top: -11px; + width: 100%; + height: 11px; } + +.cp-nav-parents:hover > .dropdown-menu { + display: block; } + +.table-notificacoes tbody tr td { + border-top: 1px solid white; + padding: 5px; + vertical-align: middle; } + .table-notificacoes tbody tr td ul { + margin: 0px; + /*padding: 0px; + list-style: none;*/ } + .table-notificacoes tbody tr td ul li:hover { + background-color: rgba(0, 0, 0, 0.1); } + +.btn-modal-open { + float: right; } + +.class_color_container { + background: #ddd !important; } + +.clear { + clear: both; } + +.mce-tinymce.mce-container { + border: 1px solid #ccc !important; + margin-right: 2px; } + +.mce-btn button:hover { + background-color: rgba(0, 0, 0, 0.1) !important; + text-shadow: 0 0 5px #fff; + box-shadow: 0 0 5px #777; } + +.mce-menu { + background: #eee !important; } + +.displaynone { + display: none !important; } + +@media only screen and (max-width: 800px) { + .cp .fixed { + z-index: 98; + position: relative; } + .cp.cpe1 .dpt-selected { + margin: 1em 0; } + .cp.cpe1 .dpt-selected .csform .actions_parents, .cp.cpe1 .dpt-selected .csform .label_status { + font-size: 80%; + position: static !important; + display: block !important; + padding: 0em; + height: auto !important; + left: 0; + right: auto; + text-align: left; } + .cp.cpe1 .dpt-selected .csform .actions_parents div, .cp.cpe1 .dpt-selected .csform .actions_parents li, .cp.cpe1 .dpt-selected .csform .label_status div, .cp.cpe1 .dpt-selected .csform .label_status li { + display: inline-block !important; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li > ul { + transform: translateY(30px); + transition: transform 0.1s linear, opacity 0.1s linear, clip 0s 0.3s; + clip: rect(0, 0, 0, 0); + opacity: 0; + position: absolute; + margin-left: 0.5em; + box-shadow: 0px 6px 18px rgba(0, 0, 0, 0.19), 0px 2px 6px rgba(0, 0, 0, 0.23); + -webkit-transition-delay: 0.4s; + /* Safari */ + transition-delay: 0.4s; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li > ul li a { + border-right: 0px !important; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li > ul li:first-child::before { + border-width: 0.375rem; + border-style: inset inset solid; + content: ""; + display: block; + height: 0px; + width: 0px; + border-color: transparent transparent #3385CA; + position: absolute; + top: -0.71rem; + left: 0.9375rem; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li > ul li:first-child:hover::before { + border-color: transparent transparent #0A5EA4; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li > ul::after { + content: ""; + position: absolute; + z-index: -1; + left: 0; + top: rem-calc(-25px); + height: rem-calc(25px); + width: 100%; + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li:hover > ul { + transform: translateY(7px); + transition: transform 0.4s linear, opacity 0.4s linear, clip 0s 0.2s; + opacity: 1; + clip: rect(-100px, 2000px, 2000px, -100px); } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li > a span { + display: none; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li > a.btn-excluir, .cp.cpe1 .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > a.btn-salvar, .cp.cpe1_old_apagar .cp.cpe1 .dpt-selected .csform .actions_inserts > li > a.btn-salvar, .cp.cpe1 .dpt-selected .csform .actions_inserts > li > a.btn-salvar { + padding-left: 0; + min-width: 1em; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li > a.btn-excluir::before, .cp.cpe1 .cp.cpe1_old_apagar .dpt-selected .csform .actions_inserts > li > a.btn-salvar::before, .cp.cpe1_old_apagar .cp.cpe1 .dpt-selected .csform .actions_inserts > li > a.btn-salvar::before, .cp.cpe1 .dpt-selected .csform .actions_inserts > li > a.btn-salvar::before { + width: 100%; + margin: 0; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li.add_in, .cp.cpe1 .dpt-selected .csform .actions_inserts > li.add_next, .cp.cpe1 .dpt-selected .csform .actions_inserts > li.add_prior { + position: static; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li.add_in > ul { + left: 1em !important; + right: 1em !important; + margin-left: 0; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li.add_in > ul li:first-child::before { + left: 37%; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li.add_next > ul { + left: 0 !important; + right: 1em !important; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li.add_prior > ul { + left: 1em !important; + right: 0 !important; + margin-left: 0; + margin-right: 0.5em; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li.add_prior > ul li:first-child::before { + right: 42%; + left: auto; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li.menu_excluir > ul { + left: 10% !important; + right: 0 !important; + margin-left: 0; + margin-right: 0.5em; } + .cp.cpe1 .dpt-selected .csform .actions_inserts > li.menu_excluir > ul li:first-child::before { + right: 0; + left: auto; } } + +@media print { + .cp .vigencias, .toggle-topbar, .menu-icon, .button, .tipo-vigencias, .dne { + display: none; } + #btn_font_menos, #btn_font_mais { + display: none; } + .container { + width: 100%; } }