Browse Source

Prepara menu para tema Material

revisaoSidenav
Sesostris Vieira 3 years ago
parent
commit
0b2928ba7b
  1. 35
      sigi/apps/home/templates/menus/menu.html
  2. 17
      sigi/apps/home/templates/menus/menu_item.html
  3. 145
      sigi/apps/home/templatetags/menu_conf.yaml
  4. 19
      sigi/apps/home/templatetags/menus.py
  5. 12
      sigi/settings/base.py
  6. 108
      sigi/settings/menu_conf.yaml
  7. 6
      sigi/templates/material/admin/index.html
  8. 31
      sigi/templates/material/admin/side_nav.html
  9. 46
      sigi/templates/sigi/snippets/dashboard.html

35
sigi/apps/home/templates/menus/menu.html

@ -1,6 +1,31 @@
{% load menus %} {% load menus %}
<ul class="nav navbar-nav"> {% for menu in menu_items %}
{% for menu_item in menu_items %} {% if menu.children %}
{% show_menu_item menu_item base_url %} <li class="scrollspy">
{% endfor %} <div class="collapsible-header">
</ul> <i class="material-icons" aria-hidden="true">{% if menu.icon %}{{ menu.icon }}{% else %}settings{% endif %}</i>
{{ menu.title }}
</div>
<div class="collapsible-body">
{% for child in menu.children %}
{% if child.view_name %}
{% url child.view_name as item_url %}
<div{% if item_url in request.path %} class="active"{% endif %}>
<a href="{{ item_url }}{% if child.querystr %}?{{ child.querystr }}{% endif %}">{{ child.title }}</a>
</div>
{% else %}
<div class="disabled"><a href="#" class="disabled">{{ child.title }}</a></div>
{% endif %}
{% endfor %}
</div>
</li>
{% else %}
{% url menu.view_name as item_url %}
<div{% if item_url in request.path %} class="active"{% endif %}>
<li>
<i class="material-icons" aria-hidden="true">{% if menu.icon %}{{ menu.icon }}{% else %}settings{% endif %}</i>
<a href="{{ item_url }}{% if menu.querystr %}?{{ menu.querystr }}{% endif %}">{{ menu.title }}</a>
</li>
</div>
{% endif %}
{% endfor %}

17
sigi/apps/home/templates/menus/menu_item.html

@ -1,17 +0,0 @@
{% load menus %}
{% if menu_item.children %}
<li class="dropdown">
{% if menu_item.url %}
<a href="{{base_url}}{{ menu_item.url }}" class="dropdown-toggle" data-toggle="dropdown">{{ menu_item.title }}</a>
{% else %}
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ menu_item.title }} <span class="caret"></span></a>
{% endif %}
<ul class="dropdown-menu" role="menu">
{% for child in menu_item.children %}
{% show_menu_item child base_url %}
{% endfor %}
</ul>
</li>
{% else %}
<li><a href="{{base_url}}{{ menu_item.url }}">{{ menu_item.title }}</a></li>
{% endif %}

145
sigi/apps/home/templatetags/menu_conf.yaml

@ -1,145 +0,0 @@
main_menu:
- title: Municípios
children:
- title: Municípios
url: contatos/municipio/
- title: Unidades Federativas
url: contatos/unidadefederativa/
- title: Mesorregiões
url: contatos/mesorregiao/
- title: Casas e órgãos
children:
- title: Todo legislativo
url: casas/orgao/?tipo__legislativo__exact=1
- title: Câmaras Municipais
url: casas/orgao/?tipo__sigla__exact=CM
- title: Assembléias Legislativas
url: casas/orgao/?tipo__sigla__exact=AL
- title: Demais órgãos
url: casas/orgao/?tipo__legislativo__exact=0
- title: Gerência Interlegis
children:
- title: Carteira de relacionamentos
url: casas/carteira
- title: Organizar relacionamentos
url: casas/portfolio/
- title: Lista de gerentes
url: casas/gerentes/
- title: Convênios
children:
- title: Convênios
url: convenios/convenio/
- title: Planos diretores
url: metas/planodiretor/
- title: Serviços SEIT
children:
- title: Casas atendidas
url: servicos/casaatendida/
- title: Lista de serviços
url: servicos/servico/
- title: Ocorrências
children:
- title: Painel de ocorrências
url: ocorrencias/painel/
- title: Registro de ocorrências
url: ocorrencias/ocorrencia/?minhas=S&status__in=1,2
- title: Eventos
children:
- title: Todos os eventos
url: eventos/evento/
- title: Cursos
url: eventos/evento/?tipo_evento__categoria__exact=C
- title: Encontros
url: eventos/evento/?tipo_evento__categoria__exact=E
- title: Oficinas
url: eventos/evento/?tipo_evento__categoria__exact=O
- title: Seminários
url: eventos/evento/?tipo_evento__categoria__exact=S
- title: Visitas Interlegis
url: eventos/evento/?tipo_evento__categoria__exact=V
- title: Calendário mensal
url: eventos/calendario
- title: Alocação de equipe
url: eventos/alocacaoequipe/
- title: Servidores
children:
- title: Serviços (unidades do ILB)
url: servidores/servico/
- title: Servidores e colaboradores
url: servidores/servidor/
- title: Tabelas auxiliares
children:
- title: Tipos de órgãos
url: casas/tipoorgao/
- title: Acompanhamento convênios
url: convenios/statusconvenio/
- title: Tipos de serviço SEIT
url: servicos/tiposervico/
- title: Tipos de projeto
url: convenios/projeto/
- title: Categorias de ocorrências
url: ocorrencias/categoria/
- title: Tipos de contato
url: ocorrencias/tipocontato/
- title: Tipos de evento
url: eventos/tipoevento/
- title: Funções na equipe de eventos
url: eventos/funcao/
- title: Modelos de declaração
url: eventos/modelodeclaracao/
# Removidos
# - title: Legislaturas
# url: parlamentares/legislatura/
# children:
# - title: Todas
# url: parlamentares/legislatura/
# - title: Parlamentares
# url: parlamentares/parlamentar/
# - title: Tabela de cargos
# url: parlamentares/cargo/
# - title: Tabela de partidos
# url: parlamentares/partido/
# - title: Diagnósticos
# url: diagnosticos/diagnostico/
# children:
# - title: Administração
# url: diagnosticos/diagnostico/
# - title: Coleta de dados
# url: diagnosticos/mobile/
# - title: Gráficos e estatísticas
# url: diagnosticos/graficos
# - title: Inventário
# url: inventario/bem/
# children:
# - title: Bens
# url: inventario/bem/
# - title: Fornecedores
# url: inventario/fornecedor/
# - title: Equipamentos
# url: inventario/equipamento/
# - title: Fabricantes
# url: inventario/fabricante/
# - title: Tipos de equipamentos
# url: inventario/tipoequipamento/
# - title: Modelos de equipamentos
# url: inventario/modeloequipamento/
# - title: Servidores
# url: servidores/servidor/?user__is_active__exact=1
# children:
# - title: Pessoal
# url: servidores/servidor/?user__is_active__exact=1
# - title: Funções
# url: servidores/funcao
# - title: Férias
# url: servidores/ferias/
# - title: Licenças
# url: servidores/licenca/
# - title: Financeiro
# url: financeiro/desembolso/
# children:
# - title: Desembolsos
# url: financeiro/desembolso/

19
sigi/apps/home/templatetags/menus.py

@ -1,23 +1,12 @@
from os.path import dirname
import yaml import yaml
from django import template from django import template
from django.conf import settings
register = template.Library() register = template.Library()
menus = yaml.load( with open(settings.MENU_FILE, 'r') as menu_file:
open(dirname(__file__) + '/menu_conf.yaml', 'r'), menus = yaml.load(menu_file, yaml.FullLoader)
yaml.FullLoader
)
@register.inclusion_tag('menus/menu.html', takes_context=True) @register.inclusion_tag('menus/menu.html', takes_context=True)
def show_menu(context, menu_id): def show_menu(context, menu_id):
base_url = context['request'].build_absolute_uri('/') return {'menu_items': menus[menu_id], 'request': context.request}
menus = yaml.load(open(dirname(__file__) + '/menu_conf.yaml', 'r'))
return dict(menu_items=menus[menu_id], base_url=base_url)
@register.inclusion_tag('menus/menu_item.html')
def show_menu_item(menu_item, base_url):
return dict(menu_item=menu_item, base_url=base_url)

12
sigi/settings/base.py

@ -117,8 +117,8 @@ IMPORT_EXPORT_SKIP_ADMIN_LOG = True
# https://github.com/MaistrenkoAnton/django-material-admin#django-material-administration # https://github.com/MaistrenkoAnton/django-material-admin#django-material-administration
MATERIAL_ADMIN_SITE = { MATERIAL_ADMIN_SITE = {
'HEADER': _('SIGI'), 'HEADER': _('SIGI - Sistema de Informações do Interlegis'),
'TITLE': _('SIGI - Sistema de Informações do Interlegis'), 'TITLE': _('SIGI'),
'FAVICON': 'img/favicon.ico', 'FAVICON': 'img/favicon.ico',
# 'MAIN_BG_COLOR': 'color', # Admin site main color, css color should be specified # 'MAIN_BG_COLOR': 'color', # Admin site main color, css color should be specified
# 'MAIN_HOVER_COLOR': 'color', # Admin site main hover color, css color should be specified # 'MAIN_HOVER_COLOR': 'color', # Admin site main hover color, css color should be specified
@ -126,8 +126,8 @@ MATERIAL_ADMIN_SITE = {
'PROFILE_BG': 'img/engitec.jpeg', # Admin site profile background (path to static should be specified) 'PROFILE_BG': 'img/engitec.jpeg', # Admin site profile background (path to static should be specified)
'LOGIN_LOGO': 'img/interlegis.jpeg', # Admin site logo on login page (path to static should be specified) 'LOGIN_LOGO': 'img/interlegis.jpeg', # Admin site logo on login page (path to static should be specified)
'LOGOUT_BG': 'img/engitec.jpeg', # Admin site background on login/logout pages (path to static should be specified) 'LOGOUT_BG': 'img/engitec.jpeg', # Admin site background on login/logout pages (path to static should be specified)
'SHOW_THEMES': True, # Show default admin themes button 'SHOW_THEMES': False, # Show default admin themes button
'TRAY_REVERSE': True, # Hide object-tools and additional-submit-line by default 'TRAY_REVERSE': False, # Hide object-tools and additional-submit-line by default
'NAVBAR_REVERSE': True, # Hide side navbar by default 'NAVBAR_REVERSE': True, # Hide side navbar by default
# 'SHOW_COUNTS': True, # Show instances counts for each model # 'SHOW_COUNTS': True, # Show instances counts for each model
# 'APP_ICONS': { # Set icons for applications(lowercase), including 3rd party apps, {'application_name': 'material_icon_name', ...} # 'APP_ICONS': { # Set icons for applications(lowercase), including 3rd party apps, {'application_name': 'material_icon_name', ...}
@ -137,3 +137,7 @@ MATERIAL_ADMIN_SITE = {
# 'site': 'contact_mail', # 'site': 'contact_mail',
# } # }
} }
# SIGI specific settings
MENU_FILE = BASE_DIR / 'settings/menu_conf.yaml'

108
sigi/settings/menu_conf.yaml

@ -0,0 +1,108 @@
main_menu:
- title: Municípios
icon: location_city
children:
- title: Municípios
view_name: admin:contatos_municipio_changelist
- title: Unidades Federativas
view_name: admin:contatos_unidadefederativa_changelist
- title: Mesorregiões
view_name: admin:contatos_mesorregiao_changelist
- title: Casas e órgãos
icon: account_balance
children:
- title: Todo legislativo
view_name: admin:casas_orgao_changelist
querystr: tipo__legislativo__exact=1
- title: Câmaras Municipais
view_name: admin:casas_orgao_changelist
querystr: tipo__sigla__exact=CM
- title: Assembléias Legislativas
view_name: admin:casas_orgao_changelist
querystr: tipo__sigla__exact=AL
- title: Demais órgãos
view_name: admin:casas_orgao_changelist
querystr: tipo__legislativo__exact=0
- title: Gerência Interlegis
icon: people
children:
- title: Carteira de relacionamentos
view_name:
- title: Organizar relacionamentos
view_name:
- title: Lista de gerentes
view_name:
- title: Convênios
icon: assignment
children:
- title: Convênios
view_name: admin:convenios_convenio_changelist
- title: Planos diretores
view_name: admin:metas_planodiretor_changelist
- title: Serviços SEIT
icon: cloud_done
children:
- title: Casas atendidas
view_name: admin:servicos_casaatendida_changelist
- title: Lista de serviços
view_name: admin:servicos_servico_changelist
- title: Ocorrências
icon: comment
children:
- title: Painel de ocorrências
view_name:
- title: Registro de ocorrências
view_name: admin:ocorrencias_ocorrencia_changelist
querystr: minhas=S&status__in=1,2
- title: Eventos
icon: school
children:
- title: Todos os eventos
view_name: admin:eventos_evento_changelist
- title: Cursos
view_name: admin:eventos_evento_changelist
querystr: tipo_evento__categoria__exact=C
- title: Encontros
view_name: admin:eventos_evento_changelist
querystr: tipo_evento__categoria__exact=E
- title: Oficinas
view_name: admin:eventos_evento_changelist
querystr: tipo_evento__categoria__exact=O
- title: Seminários
view_name: admin:eventos_evento_changelist
querystr: tipo_evento__categoria__exact=S
- title: Visitas Interlegis
view_name: admin:eventos_evento_changelist
querystr: tipo_evento__categoria__exact=V
- title: Calendário mensal
view_name:
- title: Alocação de equipe
view_name:
- title: Servidores
icon: account_circle
children:
- title: Serviços (unidades do ILB)
view_name: admin:servidores_servico_changelist
- title: Servidores e colaboradores
view_name: admin:servidores_servidor_changelist
- title: Tabelas auxiliares
icon: settings
children:
- title: Tipos de órgãos
view_name: admin:casas_tipoorgao_changelist
- title: Acompanhamento convênios
view_name: admin:convenios_statusconvenio_changelist
- title: Tipos de serviço SEIT
view_name: admin:servicos_tiposervico_changelist
- title: Tipos de projeto
view_name: admin:convenios_projeto_changelist
- title: Categorias de ocorrências
view_name: admin:ocorrencias_categoria_changelist
- title: Tipos de contato
view_name: admin:ocorrencias_tipocontato_changelist
- title: Tipos de evento
view_name: admin:eventos_tipoevento_changelist
- title: Funções na equipe de eventos
view_name: admin:eventos_funcao_changelist
- title: Modelos de declaração
view_name: admin:eventos_modelodeclaracao_changelist

6
sigi/templates/material/admin/index.html

@ -0,0 +1,6 @@
{% extends "admin/index.html" %}
{% load static %}
{% block content %}
{% include 'sigi/snippets/dashboard.html' %}
{% endblock %}

31
sigi/templates/material/admin/side_nav.html

@ -0,0 +1,31 @@
{% load i18n material menus %}
<div class="scroll-pane">
{% if not mobile %}
<i class="material-icons minimize nav-bar" aria-hidden="true" title="{% trans 'Minimize' %}">close</i>
{% endif %}
{% if available_apps %}
<ul class="collapsible">
<li>
<div class="card">
<div class="card-image">
{% if 'profile/user_picture.html'|template_exists %}
{% include 'profile/user_picture.html' %}
{% else %}
{% include 'material/admin/user_picture.html' %}
{% endif %}
</div>
</div>
</li>
{% show_menu 'main_menu' %}
</ul>
{% else %}
<div class="app">
<div class="card">
<div class="card-content">
<p>{% trans "You don't have permission to view or edit anything." %}</>
</div>
</div>
</div>
{% endif %}
</div>

46
sigi/templates/sigi/snippets/dashboard.html

@ -0,0 +1,46 @@
{% load i18n %}
<div class="content-wrapper">
<div class="app-list">
{% if app_list %}
{% for app in app_list %}
<div class="app">
<div class="card">
<div class="card-content">
<div class="card-title">
{{ app.name }}
</div>
<div class="row">
{% for model in app.models %}
<div class="app-item col s6 m6 l4">
<a {% if model.admin_url %}href="{{ model.admin_url }}"{% else %}class="disabled"{% endif %}>
{% if model.count != None %}
<div class="card app-count-badge">
<div class="badge-content">
{{ model.count }}
</div>
</div>
{% endif %}
<i class="material-icons" aria-hidden="true">
{{ model.icon|default_if_none:'settings' }}
</i>
<h6 class="card-app-name">{{ model.name }}</h6>
</a>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
{% endfor %}
{% else %}
<div class="app">
<div class="card">
<div class="card-content">
<p>{% trans "You don't have permission to view or edit anything." %}</p>
</div>
</div>
</div>
{% endif %}
</div>
</div>
Loading…
Cancel
Save