Browse Source

Refatora Menu geral

pull/772/head
LeandroRoberto 8 years ago
parent
commit
3f60bfe9af
  1. 23
      sapl/base/templatetags/menus.py
  2. 77
      sapl/templates/base.html
  3. 27
      sapl/templates/menus/nav.html
  4. 66
      sapl/templates/navbar.yaml

23
sapl/base/templatetags/menus.py

@ -11,6 +11,15 @@ register = template.Library()
@register.inclusion_tag('menus/subnav.html', takes_context=True)
def subnav(context, path=None):
return nav_run(context, path)
@register.inclusion_tag('menus/nav.html', takes_context=True)
def navbar(context, path=None):
return nav_run(context, path)
def nav_run(context, path=None):
"""Renderiza sub navegação para objetos no padrão Mestre Detalhe
Existem três possíveis fontes de busca do yaml
@ -32,7 +41,7 @@ def subnav(context, path=None):
if obj:
root_pk = obj.pk
if root_pk or 'subnav_template_name' in context:
if root_pk or 'subnav_template_name' in context or path:
request = context['request']
"""
@ -106,14 +115,20 @@ def resolve_urls_inplace(menu, pk, rm, context):
menu['url'] = reverse('%s' % menu['url'],
kwargs={'pk': pk})
except:
try:
menu['url'] = reverse('%s' % menu['url'])
except:
pass
else:
try:
menu['url'] = reverse('%s:%s' % (
rm.app_name, menu['url']), kwargs={'pk': pk})
except:
try:
menu['url'] = reverse('%s:%s' % (
rm.app_name, menu['url']))
except:
pass
menu['active'] = 'active'\
if context['request'].path == menu['url'] else ''
@ -125,7 +140,7 @@ def resolve_urls_inplace(menu, pk, rm, context):
as funcionalidades diretas do MasterDetailCrud, como:
- visualização de detalhes, adição, edição, remoção.
"""
if 'view' in context:
view = context['view']
if hasattr(view, '__class__') and\
hasattr(view.__class__, 'crud'):
@ -136,6 +151,10 @@ def resolve_urls_inplace(menu, pk, rm, context):
u.name in menu['urls_extras']):
menu['active'] = 'active'
break
elif 'check_permission' in menu and not context[
'request'].user.has_perm(menu['check_permission']):
menu['active'] = ''
del menu['children']
if 'children' in menu:
menu['active'] = resolve_urls_inplace(

77
sapl/templates/base.html

@ -41,84 +41,9 @@
</button>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="/" role="button" aria-haspopup="true" aria-expanded="false">Inicio</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Institucional <span class="caret"></span></a>
<ul class="dropdown-menu">
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.parlamentares:mesa_diretora' %}">Mesa Diretora</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.comissoes:comissao_list' %}">Comissões</a></li>
<!-- <li class="nav__sub-item"><a class="nav__sub-link" href="#">Bancadas</a></li> -->
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.parlamentares:parlamentar_list' %}">Parlamentares</a></li>
</ul>
</li>
{% if perms.protocoloadm %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Protocolo <span class="caret"></span></a>
<ul class="dropdown-menu">
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.protocoloadm:protocolo' %}">Pesquisar Protocolo</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.materia:receber-proposicao' %}">Receber Proposições</a></li>
<!-- <li class="nav__sub-item"><a class="nav__sub-link" href="/materia">Protocolo Legislativo</a></li> -->
{# <li class="nav__sub-item"><a class="nav__sub-link" href="">Protocolo Geral</a></li> #}
{# <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.materia:proposicao' %}">Proposições</a></li> #}
</ul>
</li>
{% endif %}
{% block sections_navbar %} {% navbar 'navbar.yaml' %}{% endblock sections_navbar %}
{% if user|get_doc_adm_template_perms %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentos Administrativos <span class="caret"></span></a>
<ul class="dropdown-menu">
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.protocoloadm:pesq_doc_adm' %}">Pesquisar Documento Administrativo</a></li>
</ul>
</li>
{% endif %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Atividade Legislativa <span class="caret"></span></a>
<ul class="dropdown-menu">
{% if perms.materia.add_proposicao %}
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.materia:proposicao_list' %}">Proposições</a></li>
{% endif %}
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.materia:pesquisar_materia' %}">Matérias Legislativas</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.sessao:pesquisar_sessao' %}">Sessões Plenárias</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.sessao:pesquisar_pauta' %}">Pautas das Sessões</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.materia:primeira_tramitacao_em_lote' %}">Tramitação em Lote</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.materia:acessorio_em_lote' %}">Acessório em Lote</a></li>
<!-- <li class="nav__sub-item"><a class="nav__sub-link" href="#">Atas das Sessões</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Reuniões das Comissões</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Impressos</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Relatórios</a></li> -->
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% trans 'Legislação'%} <span class="caret"></span></a>
<ul class="dropdown-menu">
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.norma:norma_pesquisa'%}">{% trans 'Pesquisar Normas Jurídicas'%}</a></li>
<!-- <li class="nav__sub-item"><a class="nav__sub-link" href="#">Índice de Assuntos</a></li> -->
</ul>
</li>
{% if perms.base.menu_sistemas %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Sistema <span class="caret"></span></a>
<ul class="dropdown-menu">
{% if perms.base.view_tabelas_auxiliares %}<li class="nav__sub-item"><a class="nav__sub-link" href="/sistema">Tabelas Auxiliares</a></li>{%endif%}
<!-- <li class="nav__sub-item"><a class="nav__sub-link" href="#">Provedor LexML</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Publicador LexML</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Gerenciar Usuários</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Backup e Restauração</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Migração de Dados</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Sobre</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">ZopeEdit Windows</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Troca de Senha</a></li> -->
</ul>
</li>
{% endif %}
</ul>
<ul class="nav navbar-nav navbar-right" id="autenticacao">
<li class="dropdown pesquisa">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><img src="{% static 'img/search.png' %}"><span class="caret"></span></a>

27
sapl/templates/menus/nav.html

@ -0,0 +1,27 @@
{% load i18n %}
{% if menu %}
<ul class="nav navbar-nav">
{% for item in menu %}
{% if item.children %}
<li class="dropdown">
<a class="dropdown-toggle"href="#fakeLink" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
{{ item.title }}
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
{% for subitem in item.children %}
{% if subitem.url %}
<li><a href="{{ subitem.url }}">{{ subitem.title }}</a></li>
{% endif %}
{% endfor %}
</ul>
</li>
{% else %}
{% if item.url %}
<li><a href="{{ item.url }}">{% trans item.title %}</a></li>
{% endif %}
{% endif %}
{% endfor %}
</ul>
{% endif %}

66
sapl/templates/navbar.yaml

@ -0,0 +1,66 @@
{% load i18n common_tags %}
- title: {% trans 'Início' %}
url: '/'
- title: {% trans 'Institucional' %}
children:
- title: {% trans 'Mesa Diretora' %}
url: sapl.parlamentares:mesa_diretora
- title: {% trans 'Comissões' %}
url: sapl.comissoes:comissao_list
- title: {% trans 'Parlamentares' %}
url: sapl.parlamentares:parlamentar_list
- title: {% trans 'Protocolo' %}
check_permission: protolcoloadm.list_protocolo
children:
- title: {% trans 'Pesquisar Protocolo' %}
url: sapl.protocoloadm:protocolo
- title: {% trans 'Receber Proposições' %}
url: sapl.materia:receber-proposicao
- title: {% trans 'Documentos Administrativos' %}
{% if 'documentos_administrativos'|get_config_attr == 'R' %}check_permission: protolcoloadm.list_documentoadministrativo{%endif%}
url: sapl.protocoloadm:pesq_doc_adm
- title: {% trans 'Atividade Legislativa' %}
children:
- title: {% trans 'Proposições' %}
url: sapl.materia:proposicao_list
check_permission: materia.add_proposicao
- title: {% trans 'Matérias Legislativas' %}
url: sapl.materia:pesquisar_materia
- title: {% trans 'Sessões Plenárias' %}
url: sapl.sessao:pesquisar_sessao
- title: {% trans 'Pautas das Sessões' %}
url: sapl.sessao:pesquisar_pauta
- title: {% trans 'Tramitação em Lote' %}
url: sapl.materia:primeira_tramitacao_em_lote
check_permission: materia.list_tramitacao {% comment %} FIXME transformar para checagens de menu_[funcionalidade]{% endcomment%}
- title: {% trans 'Acessório em Lote' %}
url: sapl.materia:acessorio_em_lote
check_permission: materia.list_documentoacessorio {% comment %} FIXME transformar para checagens de menu_[funcionalidade]{% endcomment%}
- title: {% trans 'Normas Jurídicas' %}
children:
- title: {% trans 'Pesquisar Normas Jurídicas' %}
url: sapl.norma:normajuridica_list
- title: {% trans 'Sistema' %}
check_permission: base.menu_sistemas
children:
- title: {% trans 'Tabelas Auxiliares' %}
url: '/sistema'
check_permission: base.view_tabelas_auxiliares
{% comment %}
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Provedor LexML</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Publicador LexML</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Gerenciar Usuários</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Backup e Restauração</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Migração de Dados</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Sobre</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">ZopeEdit Windows</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Troca de Senha</a></li>
{% endcomment%}
Loading…
Cancel
Save