mirror of https://github.com/interlegis/sapl.git
Marcio Mazza
9 years ago
4 changed files with 83 additions and 44 deletions
@ -0,0 +1,28 @@ |
|||
from os.path import dirname |
|||
|
|||
import yaml |
|||
from django import template |
|||
from django.core.urlresolvers import reverse |
|||
from sapl.settings import BASE_DIR |
|||
|
|||
register = template.Library() |
|||
TEMPLATES_DIR = BASE_DIR.child("templates") |
|||
|
|||
|
|||
@register.inclusion_tag('menus/subnav.html', takes_context=True) |
|||
def subnav(context, path): |
|||
yaml_filename = TEMPLATES_DIR.child(*path.split('/')) |
|||
menu = yaml.load(open(yaml_filename, 'r')) |
|||
resolve_urls_inplace(menu, context['object'].pk) |
|||
return dict(menu=menu) |
|||
|
|||
|
|||
def resolve_urls_inplace(menu, pk): |
|||
if isinstance(menu, list): |
|||
for item in menu: |
|||
resolve_urls_inplace(item, pk) |
|||
else: |
|||
if 'url' in menu: |
|||
menu['url'] = reverse(menu['url'], kwargs={'pk': pk}) |
|||
if 'children' in menu: |
|||
resolve_urls_inplace(menu['children'], pk) |
@ -0,0 +1,20 @@ |
|||
{% load i18n %} |
|||
<ul class="nav nav-pills navbar-right"> |
|||
|
|||
{% for item in menu %} |
|||
{% if item.children %} |
|||
<li class="dropdown"> |
|||
<a class="dropdown-toggle" data-toggle="dropdown" href="#fakeLink"> |
|||
{% trans item.title %} |
|||
<span class="fa-chevron-down fa"></span> |
|||
</a> |
|||
<ul class="dropdown-menu" role="menu">{% for subitem in item.children %} |
|||
<li><a href="{{ subitem.url }}">{% trans subitem.title %}</a></li>{% endfor %} |
|||
</ul> |
|||
</li> |
|||
{% else %} |
|||
<li><a href="{{ item.url }}">{% trans item.title %}</a></li> |
|||
{% endif %} |
|||
{% endfor %} |
|||
|
|||
</ul> |
@ -1,48 +1,7 @@ |
|||
{% extends "crud/detail.html" %} |
|||
{% load i18n %} |
|||
{% load i18n menus %} |
|||
{% block actions %} {% endblock %} |
|||
{% block sections_nav %} |
|||
|
|||
<ul class="nav nav-pills navbar-right"> |
|||
|
|||
<li class="dropdown"> |
|||
<a class="dropdown-toggle" data-toggle="dropdown" href="#fakeLink"> |
|||
{% trans 'Abertura' %} |
|||
<span class="fa-chevron-down fa"></span> |
|||
</a> |
|||
<ul class="dropdown-menu" role="menu"> |
|||
<li><a href="{% url 'sessaoplenaria:detail' object.pk %}">{% trans 'Dados Básicos' %}</a></li> |
|||
<li><a href="{% url 'sessaoplenaria:mesa' object.pk %}">{% trans 'Mesa' %}</a></li> |
|||
<li><a href="{% url 'sessaoplenaria:presenca' object.pk %}">{% trans 'Presença' %}</a></li> |
|||
<li><a href="{% url 'sessaoplenaria:explicacao' object.pk %}">{% trans 'Explicações Pessoais' %}</a></li> |
|||
</ul> |
|||
</li> |
|||
|
|||
<li class="dropdown"> |
|||
<a class="dropdown-toggle" data-toggle="dropdown" href="#fakeLink"> |
|||
{% trans 'Expedientes' %} |
|||
<span class="fa-chevron-down fa"></span> |
|||
</a> |
|||
<ul class="dropdown-menu" role="menu"> |
|||
<li><a href="{% url 'sessaoplenaria:expediente' object.pk %}">{% trans 'Expediente Diversos' %}</a></li> |
|||
<li><a href="{% url 'sessaoplenaria:expedienteordemdia_list' object.pk %}">{% trans 'Matérias Expediente' %}</a></li> |
|||
<li><a href="{% url 'sessaoplenaria:oradorexpediente' object.pk %}">{% trans 'Oradores do Expediente' %}</a></li> |
|||
</ul> |
|||
</li> |
|||
|
|||
<li class="dropdown"> |
|||
<a class="dropdown-toggle" data-toggle="dropdown" href="#fakeLink"> |
|||
{% trans 'Ordem do Dia' %} |
|||
<span class="fa-chevron-down fa"></span> |
|||
</a> |
|||
<ul class="dropdown-menu" role="menu"> |
|||
<li><a href="{% url 'sessaoplenaria:materiaordemdia_list' object.pk %}">{% trans 'Matérias Ordem do Dia' %}</a></li> |
|||
<li><a href="{% url 'sessaoplenaria:presencaordemdia' object.pk %}">{% trans 'Presença Ordem do Dia' %}</a></li> |
|||
</ul> |
|||
</li> |
|||
|
|||
<li><a href="{% url 'sessaoplenaria:painel' object.pk %}">{% trans 'Painel Eletrônico' %}</a></li> |
|||
<li><a href="{% url 'sessaoplenaria:resumo' object.pk %}">{% trans 'Resumo' %}</a></li> |
|||
|
|||
</ul> |
|||
{% block sections_nav %} |
|||
{% subnav "sessao/subnav.yaml" %} |
|||
{% endblock sections_nav %} |
|||
|
@ -0,0 +1,32 @@ |
|||
- title: Abertura |
|||
children: |
|||
- title: Dados Básicos |
|||
url: sessaoplenaria:detail |
|||
- title: Mesa |
|||
url: sessaoplenaria:mesa |
|||
- title: Presença |
|||
url: sessaoplenaria:presenca |
|||
- title: Explicações Pessoais |
|||
url: sessaoplenaria:explicacao |
|||
|
|||
- title: Expedientes |
|||
children: |
|||
- title: Expediente Diversos |
|||
url: sessaoplenaria:expediente |
|||
- title: Matérias Expediente |
|||
url: sessaoplenaria:expedienteordemdia_list |
|||
- title: Oradores do Expediente |
|||
url: sessaoplenaria:oradorexpediente |
|||
|
|||
- title: Ordem do Dia |
|||
children: |
|||
- title: Matérias Ordem do Dia |
|||
url: sessaoplenaria:materiaordemdia_list |
|||
- title: Presença Ordem do Dia |
|||
url: sessaoplenaria:presencaordemdia |
|||
|
|||
- title: Painel Eletrônico |
|||
url: sessaoplenaria:painel |
|||
|
|||
- title: Resumo |
|||
url: sessaoplenaria:resumo |
Loading…
Reference in new issue