diff --git a/sapl/base/templatetags/menus.py b/sapl/base/templatetags/menus.py index 34294fbd8..92df1e39f 100644 --- a/sapl/base/templatetags/menus.py +++ b/sapl/base/templatetags/menus.py @@ -2,13 +2,17 @@ from django import template from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ import yaml - from sapl.utils import sapl_logger register = template.Library() +@register.inclusion_tag('menus/menu.html', takes_context=True) +def menu(context, path=None): + return nav_run(context, path) + + @register.inclusion_tag('menus/subnav.html', takes_context=True) def subnav(context, path=None): return nav_run(context, path) diff --git a/sapl/compilacao/urls.py b/sapl/compilacao/urls.py index 69b6fd654..decbd5578 100644 --- a/sapl/compilacao/urls.py +++ b/sapl/compilacao/urls.py @@ -98,31 +98,31 @@ urlpatterns_compilacao = [ views.PublicacaoDeleteView.as_view(), name='ta_pub_delete'), - url(r'^config/tipo-textoarticulado$', - views.TipoTaListView.as_view(), name='tipo_ta_list'), - url(r'^config/tipo-textoarticulado/create$', - views.TipoTaCreateView.as_view(), name='tipo_ta_create'), - url(r'^config/tipo-textoarticulado/(?P[0-9]+)$', - views.TipoTaDetailView.as_view(), name='tipo_ta_detail'), - url(r'^config/tipo-textoarticulado/(?P[0-9]+)/edit$', - views.TipoTaUpdateView.as_view(), name='tipo_ta_edit'), - url(r'^config/tipo-textoarticulado/(?P[0-9]+)/delete$', - views.TipoTaDeleteView.as_view(), name='tipo_ta_delete'), ] urlpatterns = [ url(r'^ta/', include(urlpatterns_compilacao)), - url(r'^ta/config/tipo-nota/', + url(r'^sistema/ta/config/tipo-nota/', include(TipoNotaCrud.get_urls())), - url(r'^ta/config/tipo-vide/', + url(r'^sistema/ta/config/tipo-vide/', include(TipoVideCrud.get_urls())), - url(r'^ta/config/tipo-publicacao/', + url(r'^sistema/ta/config/tipo-publicacao/', include(TipoPublicacaoCrud.get_urls())), - url(r'^ta/config/veiculo-publicacao/', + url(r'^sistema/ta/config/veiculo-publicacao/', include(VeiculoPublicacaoCrud.get_urls())), - url(r'^ta/config/tipo-dispositivo/', + url(r'^sistema/ta/config/tipo-dispositivo/', include(TipoDispositivoCrud.get_urls())), + url(r'^sistema/ta/config/tipo-textoarticulado$', + views.TipoTaListView.as_view(), name='tipo_ta_list'), + url(r'^sistema/ta/config/tipo-textoarticulado/create$', + views.TipoTaCreateView.as_view(), name='tipo_ta_create'), + url(r'^sistema/ta/config/tipo-textoarticulado/(?P[0-9]+)$', + views.TipoTaDetailView.as_view(), name='tipo_ta_detail'), + url(r'^sistema/ta/config/tipo-textoarticulado/(?P[0-9]+)/edit$', + views.TipoTaUpdateView.as_view(), name='tipo_ta_edit'), + url(r'^sistema/ta/config/tipo-textoarticulado/(?P[0-9]+)/delete$', + views.TipoTaDeleteView.as_view(), name='tipo_ta_delete'), ] diff --git a/sapl/compilacao/views.py b/sapl/compilacao/views.py index b24bfd677..250ef70ea 100644 --- a/sapl/compilacao/views.py +++ b/sapl/compilacao/views.py @@ -48,15 +48,15 @@ from sapl.compilacao.models import (STATUS_TA_EDITION, STATUS_TA_PRIVATE, from sapl.compilacao.utils import (DISPOSITIVO_SELECT_RELATED, DISPOSITIVO_SELECT_RELATED_EDIT, get_integrations_view_names) -from sapl.crud.base import Crud, CrudListView, make_pagination +from sapl.crud.base import Crud, CrudListView, make_pagination, CrudAux from sapl.settings import BASE_DIR -TipoNotaCrud = Crud.build(TipoNota, 'tipo_nota') -TipoVideCrud = Crud.build(TipoVide, 'tipo_vide') -TipoPublicacaoCrud = Crud.build(TipoPublicacao, 'tipo_publicacao') -VeiculoPublicacaoCrud = Crud.build(VeiculoPublicacao, 'veiculo_publicacao') -TipoDispositivoCrud = Crud.build( +TipoNotaCrud = CrudAux.build(TipoNota, 'tipo_nota') +TipoVideCrud = CrudAux.build(TipoVide, 'tipo_vide') +TipoPublicacaoCrud = CrudAux.build(TipoPublicacao, 'tipo_publicacao') +VeiculoPublicacaoCrud = CrudAux.build(VeiculoPublicacao, 'veiculo_publicacao') +TipoDispositivoCrud = CrudAux.build( TipoDispositivo, 'tipo_dispositivo') logger = logging.getLogger(BASE_DIR.name) diff --git a/sapl/crud/base.py b/sapl/crud/base.py index c94820a03..3f20e376b 100644 --- a/sapl/crud/base.py +++ b/sapl/crud/base.py @@ -17,18 +17,20 @@ from django.http.response import Http404 from django.shortcuts import redirect from django.utils.decorators import classonlymethod from django.utils.encoding import force_text -from django.utils.translation import ugettext_lazy as _ from django.utils.translation import string_concat +from django.utils.translation import ugettext_lazy as _ from django.views.generic import (CreateView, DeleteView, DetailView, ListView, UpdateView) from django.views.generic.base import ContextMixin from django.views.generic.list import MultipleObjectMixin + from sapl.crispy_layout_mixin import CrispyLayoutFormMixin, get_field_display from sapl.rules.map_rules import (RP_ADD, RP_CHANGE, RP_DELETE, RP_DETAIL, RP_LIST) from sapl.settings import BASE_DIR from sapl.utils import normalize + logger = logging.getLogger(BASE_DIR.name) ACTION_LIST, ACTION_CREATE, ACTION_DETAIL, ACTION_UPDATE, ACTION_DELETE = \ @@ -936,6 +938,9 @@ class CrudAux(Crud): """ permission_required = ('base.view_tabelas_auxiliares',) + class ListView(Crud.ListView): + template_name = "crud/list_tabaux.html" + class BaseMixin(Crud.BaseMixin): subnav_template_name = None diff --git a/sapl/materia/views.py b/sapl/materia/views.py index a5f69a1e0..ebbcca5e5 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -2,8 +2,6 @@ from datetime import datetime from random import choice from string import ascii_letters, digits -import sapl -import weasyprint from crispy_forms.helper import FormHelper from crispy_forms.layout import HTML from django.contrib import messages @@ -24,6 +22,8 @@ from django.views.generic import CreateView, ListView, TemplateView, UpdateView from django.views.generic.base import RedirectView from django.views.generic.edit import FormView from django_filters.views import FilterView +import weasyprint + from sapl.base.models import Autor, CasaLegislativa from sapl.comissoes.models import Comissao, Participacao from sapl.compilacao.models import (STATUS_TA_IMMUTABLE_RESTRICT, @@ -47,6 +47,7 @@ from sapl.utils import (TURNO_TRAMITACAO_CHOICES, YES_NO_CHOICES, autor_label, autor_modal, gerar_hash_arquivo, get_base_url, get_mime_type_from_file_extension, montar_row_autor, show_results_filter_set) +import sapl from .email_utils import do_envia_email_confirmacao from .forms import (AcessorioEmLoteFilterSet, AcompanhamentoMateriaForm, @@ -67,9 +68,10 @@ from .models import (AcompanhamentoMateria, Anexada, AssuntoMateria, Autoria, TipoProposicao, Tramitacao, UnidadeTramitacao) from .signals import tramitacao_signal -AssuntoMateriaCrud = Crud.build(AssuntoMateria, 'assunto_materia') -OrigemCrud = Crud.build(Origem, '') +AssuntoMateriaCrud = CrudAux.build(AssuntoMateria, 'assunto_materia') + +OrigemCrud = CrudAux.build(Origem, '') TipoMateriaCrud = CrudAux.build( TipoMateriaLegislativa, 'tipo_materia_legislativa') @@ -308,7 +310,8 @@ def recuperar_materia(request): tipo=tipo).aggregate( Max('numero')) elif numeracao == 'U': - numero = MateriaLegislativa.objects.filter(tipo=tipo).aggregate(Max('numero')) + numero = MateriaLegislativa.objects.filter( + tipo=tipo).aggregate(Max('numero')) if numeracao is None: numero['numero__max'] = 0 @@ -323,10 +326,10 @@ def recuperar_materia(request): StatusTramitacaoCrud = CrudAux.build(StatusTramitacao, 'status_tramitacao') -class OrgaoCrud(Crud): +class OrgaoCrud(CrudAux): model = Orgao - class CreateView(Crud.CreateView): + class CreateView(CrudAux.CreateView): form_class = OrgaoForm @@ -591,11 +594,10 @@ class UnidadeTramitacaoCrud(CrudAux): model = UnidadeTramitacao help_topic = 'unidade_tramitacao' - class BaseMixin(Crud.BaseMixin): + class BaseMixin(CrudAux.BaseMixin): list_field_names = ['comissao', 'orgao', 'parlamentar'] - class ListView(Crud.ListView): - template_name = "crud/list.html" + class ListView(CrudAux.ListView): def get_headers(self): return [_('Unidade de Tramitação')] @@ -841,14 +843,17 @@ class ProposicaoCrud(Crud): obj.data_recebimento = 'Não recebida'\ if obj.data_envio else 'Não enviada' else: - obj.data_recebimento = timezone.localtime(obj.data_recebimento) - obj.data_recebimento = obj.data_recebimento = formats.date_format(obj.data_recebimento, "DATETIME_FORMAT") + obj.data_recebimento = timezone.localtime( + obj.data_recebimento) + obj.data_recebimento = obj.data_recebimento = formats.date_format( + obj.data_recebimento, "DATETIME_FORMAT") if obj.data_envio is None: obj.data_envio = 'Em elaboração...' else: obj.data_envio = timezone.localtime(obj.data_envio) - obj.data_envio = formats.date_format(obj.data_envio, "DATETIME_FORMAT") + obj.data_envio = formats.date_format( + obj.data_envio, "DATETIME_FORMAT") return [self._as_row(obj) for obj in object_list] diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 2b66849a7..ab0f2fec4 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -577,6 +577,9 @@ class OradorCrud(OradorCrud): class BancadaCrud(Crud): model = Bancada + class ListView(Crud.ListView): + template_name = 'crud/list_tabaux.html' + class CreateView(Crud.CreateView): form_class = BancadaForm @@ -587,6 +590,9 @@ class BancadaCrud(Crud): class BlocoCrud(Crud): model = Bloco + class ListView(Crud.ListView): + template_name = 'crud/list_tabaux.html' + class CreateView(Crud.CreateView): form_class = BlocoForm diff --git a/sapl/static/styles/app.scss b/sapl/static/styles/app.scss index 2edac98fc..262b3f45e 100644 --- a/sapl/static/styles/app.scss +++ b/sapl/static/styles/app.scss @@ -481,6 +481,80 @@ p { } /* FIM TEMPLATE AJUDA */ +.container-tabaux { + .sidebar-tabaux { + background: #fafafa; + margin-top: -70px; + padding: 10px; + border: 1px solid #eee; + .navbar-right { + margin: 0; + } + .nav-pills > li + li { + margin-left: 0px; + } + li { + width: 100%; + } + span { + display: none; + } + .dropdown-menu { + padding: 0px; + right: 10px; + margin-top: -5px; + overflow: hidden; + a { + border: 0px; + } + } + } + + ul { + list-style: none; + padding: 0; + } + + .list { + font-family: "SourceSansProSemiBold", Helvetica, Arial, sans-serif; + font-size: 0px; + display: table; + width: 100%; + margin: 0; + + ul { + display: table; + width: 100%; + margin: 0; + } + + li { + width: calc(50%); + display: inline-block; + position: relative; + } + & > li { + width: 100%; + border-bottom: 1px solid #eee; + padding-bottom: 20px; + margin-bottom: 20px; + } + + .head_title { + color: #364347; + font-size: 2.4rem; + text-transform: none; + } + + a { + span { + display: none; + } + } + } +} + + @media (max-width: 1199px) { .masthead { .navbar-brand { diff --git a/sapl/templates/compilacao/tipotextoarticulado_list.html b/sapl/templates/compilacao/tipotextoarticulado_list.html index e89e8afd4..509c9c0d3 100644 --- a/sapl/templates/compilacao/tipotextoarticulado_list.html +++ b/sapl/templates/compilacao/tipotextoarticulado_list.html @@ -1,9 +1,9 @@ {% extends "base.html" %} -{% load i18n %} -{% load compilacao_filters %} -{% load common_tags %} +{% load i18n compilacao_filters common_tags menus%} {% block base_content %} + + {% block actions %} {% if perms.compilacao.add_tipotextoarticulado %}
@@ -14,27 +14,37 @@ {% endif %} {% endblock actions %} - {% if not object_list %} -

{{ NO_ENTRIES_MSG }}

- {% else %} - - - - - - - - - - {% for tipo_ta in object_list %} - - - - - - {% endfor %} - -
{% fieldclass_verbose_name 'sapl.compilacao.models.TipoTextoArticulado' 'sigla' %}{% fieldclass_verbose_name 'sapl.compilacao.models.TipoTextoArticulado' 'descricao' %}{% fieldclass_verbose_name 'sapl.compilacao.models.TipoTextoArticulado' 'content_type' %}
{{ tipo_ta.sigla }}{{ tipo_ta.descricao }}{{ tipo_ta.content_type }}
- {%endif%} - {% include 'paginacao.html'%} +
+
+ {% if not object_list %} +

{{ NO_ENTRIES_MSG }}

+ {% else %} + + + + + + + + + + {% for tipo_ta in object_list %} + + + + + + {% endfor %} + +
{% fieldclass_verbose_name 'sapl.compilacao.models.TipoTextoArticulado' 'sigla' %}{% fieldclass_verbose_name 'sapl.compilacao.models.TipoTextoArticulado' 'descricao' %}{% fieldclass_verbose_name 'sapl.compilacao.models.TipoTextoArticulado' 'content_type' %}
{{ tipo_ta.sigla }}{{ tipo_ta.descricao }}{{ tipo_ta.content_type }}
+ {%endif%} + {% include 'paginacao.html'%} +
+ {% if perms.base.menu_tabelas_auxiliares %} + + {% endif %} +
{% endblock %} diff --git a/sapl/templates/crud/detail.html b/sapl/templates/crud/detail.html index 8087b458b..4a1cad276 100644 --- a/sapl/templates/crud/detail.html +++ b/sapl/templates/crud/detail.html @@ -23,8 +23,8 @@
{% if view.extras_url %}
- {% for url, css_class, text in view.extras_url %} - + {% for href, css_class, text in view.extras_url %} + {{text}} {% endfor %} diff --git a/sapl/templates/crud/detail_detail.html b/sapl/templates/crud/detail_detail.html index cb0b103ec..b2312ec51 100644 --- a/sapl/templates/crud/detail_detail.html +++ b/sapl/templates/crud/detail_detail.html @@ -20,8 +20,8 @@
{% if view.extras_url %}
- {% for url, css_class, text in view.extras_url %} - + {% for href, css_class, text in view.extras_url %} + {{text}} {% endfor %} diff --git a/sapl/templates/crud/list.html b/sapl/templates/crud/list.html index 3789761fc..b1743516d 100644 --- a/sapl/templates/crud/list.html +++ b/sapl/templates/crud/list.html @@ -20,7 +20,22 @@ {% block more_buttons %}{% endblock more_buttons %}
{% endblock actions %} + + {% block extra_actions %}{% endblock extra_actions %} + + {% comment %} + {% if view.extras_url %} +
+ {% for href, css_class, text in view.extras_url %} + + {{text}} + + {% endfor %} +
+ {% endif %} + {% endcomment %} + {% block extra_content %} {% endblock %} {% block container_table_list %} diff --git a/sapl/templates/crud/list_tabaux.html b/sapl/templates/crud/list_tabaux.html new file mode 100644 index 000000000..77c81f651 --- /dev/null +++ b/sapl/templates/crud/list_tabaux.html @@ -0,0 +1,15 @@ +{% extends "crud/list.html" %} +{% load i18n menus%} +{% block base_content %} +
+
+ {{block.super}} +
+ {% if perms.base.menu_tabelas_auxiliares %} + + {% endif %} +
+{% endblock base_content %} diff --git a/sapl/templates/menu_tabelas_auxiliares.yaml b/sapl/templates/menu_tabelas_auxiliares.yaml new file mode 100644 index 000000000..3e99fb877 --- /dev/null +++ b/sapl/templates/menu_tabelas_auxiliares.yaml @@ -0,0 +1,181 @@ +{% load i18n common_tags %} +- title: {% trans 'Configurações Gerais' %} + css_class: head_title + children: + - title: {% trans 'Casa Legislativa' %} + url: sapl.base:casalegislativa_list + css_class: btn btn-link + - title: {% trans 'Configurações da Aplicação' %} + url: sapl.base:appconfig_list + css_class: btn btn-link' + - title: {% trans 'Autor' %} + url: sapl.base:autor_list + css_class: btn btn-link + - title: {% trans 'Tipo de Autor' %} + url: sapl.base:tipoautor_list + css_class: btn btn-link +- title: {% trans 'Módulo Parlamentares' %} + css_class: head_title + children: + - title: {% trans 'Legislatura' %} + url: sapl.parlamentares:legislatura_list + css_class: btn btn-link + - title: {% trans 'Tipo de Afastamento' %} + url: sapl.parlamentares:tipoafastamento_list + css_class: btn btn-link + - title: {% trans 'Tipo de Dependente' %} + url: sapl.parlamentares:tipodependente_list + css_class: btn btn-link + - title: {% trans 'Tipo de Situação Militar' %} + url: sapl.parlamentares:situacaomilitar_list + css_class: btn btn-link + - title: {% trans 'Nível de Instrução' %} + url: sapl.parlamentares:nivelinstrucao_list + css_class: btn btn-link + - title: {% trans 'Partido' %} + url: sapl.parlamentares:partido_list + css_class: btn btn-link + - title: {% trans 'Coligação' %} + url: sapl.parlamentares:coligacao_list + css_class: btn btn-link +- title: {% trans 'Módulo Mesa Diretora' %} + css_class: head_title + children: + - title: {% trans 'Sessão Legislativa' %} + url: sapl.parlamentares:sessaolegislativa_list + css_class: btn btn-link + - title: {% trans 'Cargo da Mesa' %} + url: sapl.parlamentares:cargomesa_list + css_class: btn btn-link +- title: {% trans 'Módulo Comissões' %} + css_class: head_title + children: + - title: {% trans 'Cargo de Comissão' %} + url: sapl.comissoes:cargocomissao_list + css_class: btn btn-link + - title: {% trans 'Período de Composição' %} + url: sapl.comissoes:periodo_list + css_class: btn btn-link + - title: {% trans 'Tipo de Comissão' %} + url: sapl.comissoes:tipocomissao_list + css_class: btn btn-link +- title: {% trans 'Módulo Bancadas Parlamentares' %} + css_class: head_title + children: + - title: {% trans 'Bancadas Parlamentares' %} + url: sapl.sessao:bancada_list + css_class: btn btn-link + - title: {% trans 'Cargo de Bancada Parlamentar' %} + url: sapl.sessao:cargobancada_list + css_class: btn btn-link + - title: {% trans 'Frente Parlamentar' %} + url: sapl.parlamentares:frente_list + css_class: btn btn-link + - title: {% trans 'Bloco Parlamentar' %} + url: sapl.sessao:bloco_list + css_class: btn btn-link +- title: {% trans 'Módulo Proposições' %} + css_class: head_title + children: + - title: {% trans 'Tipo de Proposição' %} + url: sapl.materia:tipoproposicao_list + css_class: btn btn-link +- title: {% trans 'Módulo Matéria Legislativa' %} + css_class: head_title + children: + - title: {% trans 'Tipo de Matéria Legislativa' %} + url: sapl.materia:tipomaterialegislativa_list + css_class: btn btn-link + - title: {% trans 'Regime de Tramitação' %} + url: sapl.materia:regimetramitacao_list + css_class: btn btn-link + - title: {% trans 'Tipo de Documento' %} + url: sapl.materia:tipodocumento_list + css_class: btn btn-link + - title: {% trans 'Tipo de fim de Relatoria' %} + url: sapl.materia:tipofimrelatoria_list + css_class: btn btn-link + - title: {% trans 'Unidade de Tramitação' %} + url: sapl.materia:unidadetramitacao_list + css_class: btn btn-link + - title: {% trans 'Origem' %} + url: sapl.materia:origem_list + css_class: btn btn-link + - title: {% trans 'Status da Tramitação' %} + url: sapl.materia:statustramitacao_list + css_class: btn btn-link + - title: {% trans 'Órgão' %} + url: sapl.materia:orgao_list + css_class: btn btn-link + - title: {% trans 'Assunto Matéria' %} + url: sapl.materia:assuntomateria_list + css_class: btn btn-link +- title: {% trans 'Módulo Normas Jurídicas' %} + css_class: head_title + children: + - title: {% trans 'Tipo de Norma Jurídica' %} + url: sapl.norma:tiponormajuridica_list + css_class: btn btn-link + - title: {% trans 'Assunto de Norma Jurídica' %} + url: sapl.norma:assuntonorma_list + css_class: btn btn-link + - title: {% trans 'Tipo de Vínculo' %} + url: sapl.norma:tipovinculonormajuridica_list + css_class: btn btn-link +- title: {% trans 'Módulo Textos Articulados' %} + css_class: head_title + children: + - title: {% trans 'Tipos de Textos Articulados' %} + url: sapl.compilacao:tipo_ta_list + css_class: btn btn-link + - title: {% trans 'Tipos de Publicação' %} + url: sapl.compilacao:tipopublicacao_list + css_class: btn btn-link + - title: {% trans 'Veículos de Publicação' %} + url: sapl.compilacao:veiculopublicacao_list + css_class: btn btn-link + - title: {% trans 'Tipos de Notas' %} + url: sapl.compilacao:tiponota_list + css_class: btn btn-link + - title: {% trans 'Tipos de Vides' %} + url: sapl.compilacao:tipovide_list + css_class: btn btn-link + - title: {% trans 'Tipos de Dispositivos' %} + url: sapl.compilacao:tipodispositivo_list + css_class: btn btn-link + - title: {% trans 'Relacionamento entre Dispositivos' %} + url: /admin/compilacao/tipodispositivorelationship/ + css_class: btn btn-link +- title: {% trans 'Módulo Sessão Plenária' %} + css_class: head_title + children: + - title: {% trans 'Tipo de Sessão Plenária' %} + url: sapl.sessao:tiposessaoplenaria_list + css_class: btn btn-link + - title: {% trans 'Tipo de Resultado da Votação' %} + url: sapl.sessao:tiporesultadovotacao_list + css_class: btn btn-link + - title: {% trans 'Tipo de Expediente' %} + url: sapl.sessao:tipoexpediente_list + css_class: btn btn-link + - title: {% trans 'Ordenação do Resumo' %} + url: sapl.sessao:resumo_ordenacao + css_class: btn btn-link +- title: {% trans 'Módulo LexML' %} + css_class: head_title + children: + - title: {% trans 'Provedor' %} + url: sapl.lexml:lexmlprovedor_list + css_class: btn btn-link + - title: {% trans 'Publicador' %} + url: sapl.lexml:lexmlpublicador_list + css_class: btn btn-link +- title: {% trans 'Módulo Administrativo' %} + css_class: head_title + children: + - title: {% trans 'Tipo de Documento' %} + url: sapl.protocoloadm:tipodocumentoadministrativo_list + css_class: btn btn-link + - title: {% trans 'Status de Tramitação' %} + url: sapl.protocoloadm:statustramitacaoadministrativo_list + css_class: btn btn-link diff --git a/sapl/templates/menus/menu.html b/sapl/templates/menus/menu.html new file mode 100644 index 000000000..9b0a086f4 --- /dev/null +++ b/sapl/templates/menus/menu.html @@ -0,0 +1,36 @@ +{% load i18n %} +{% if menu %} + {% for item in menu %} + {% if item.children %} +
  • + {% if item.url %} + + {{ item.title|safe }} + + + {% else %} + + {{ item.title|safe }} + + {% endif %} +
      + {% with item.children as menu %} + {% include "menus/menu.html" %} + {% endwith %} +
    +
  • + {% else %} +
  • + {% if item.url %} + + {{ item.title|safe }} + + {% else %} + + {{ item.title|safe }} + + {% endif %} +
  • + {% endif %} + {% endfor %} +{% endif %} diff --git a/sapl/templates/sistema.html b/sapl/templates/sistema.html index 643c38a9b..8e3882369 100644 --- a/sapl/templates/sistema.html +++ b/sapl/templates/sistema.html @@ -1,115 +1,125 @@ {% extends "base.html" %} -{% load i18n crispy_forms_tags %} +{% load i18n crispy_forms_tags menus%} {% block base_content %} -

    Configurações Gerais

    - +
    +
      + {% menu 'menu_tabelas_auxiliares.yaml'%} +
    + +
    + + {% comment %} + +

    Configurações Gerais

    +

    Módulo Parlamentares

    - +

    Módulo Mesa Diretora

    - +

    Módulo Comissões

    - +

    Módulo Bancadas Parlamentares

    - +

    Módulo Proposições

    - +

    Módulo Matéria Legislativa

    - +

    Módulo Normas Jurídicas

    - + -
    +

    Módulo Textos Articulados

    - +

    Módulo Sessão Plenária

    - +

    Módulo LexML

    - +

    Módulo Administrativo

    - + + {% endcomment %} {% endblock base_content %} diff --git a/sapl/test_urls.py b/sapl/test_urls.py index 9df5900ee..9c462fc19 100644 --- a/sapl/test_urls.py +++ b/sapl/test_urls.py @@ -1,18 +1,20 @@ -import pytest from django.apps import apps from django.contrib.auth import get_user_model from django.contrib.auth.management import _get_all_permissions from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.db import transaction -from django.utils.translation import ugettext_lazy as _ from django.utils.translation import string_concat +from django.utils.translation import ugettext_lazy as _ +import pytest + from sapl.crud.base import PermissionRequiredForAppCrudMixin from sapl.rules.apps import AppConfig, update_groups from scripts.lista_urls import lista_urls from .settings import SAPL_APPS + pytestmark = pytest.mark.django_db sapl_appconfs = [apps.get_app_config(n[5:]) for n in SAPL_APPS] @@ -171,6 +173,7 @@ apps_url_patterns_prefixs_and_users = { 'compilacao': { 'prefixs': [ '/ta', + '/sistema/ta', ]}, 'redireciona_urls': { 'prefixs': [