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

77
sapl/templates/base.html

@ -41,84 +41,9 @@
</button> </button>
</div> </div>
<div id="navbar" class="navbar-collapse collapse"> <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"> {% block sections_navbar %} {% navbar 'navbar.yaml' %}{% endblock sections_navbar %}
<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 %}
{% 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"> <ul class="nav navbar-nav navbar-right" id="autenticacao">
<li class="dropdown pesquisa"> <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> <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