Browse Source

Fix #502 Internacionalização dos arquivos yaml

- Transfere arq yaml da pasta de apps para a pasta de templates das apps
- Aplica tags internacionalização nos arquivos layouts.yaml e subnav.yaml
- Customiza base/templatetags/menus.py para customização de origem do
arquivo yaml dos itens de menu do subnav com precedência de execução com
maiores detalhes sobre a precedência no próprio arquivo.
pull/507/head
LeandroRoberto 9 years ago
parent
commit
89a56ad809
  1. 76
      sapl/base/templatetags/menus.py
  2. 3
      sapl/base/tests/test_login.py
  3. 1
      sapl/base/urls.py
  4. 3
      sapl/compilacao/views.py
  5. 3
      sapl/crispy_layout_mixin.py
  6. 4
      sapl/crud/tests/stub_app/layouts.yaml
  7. 3
      sapl/templates/base/layouts.yaml
  8. 18
      sapl/templates/comissoes/layouts.yaml
  9. 8
      sapl/templates/comissoes/subnav.yaml
  10. 22
      sapl/templates/compilacao/layouts.yaml
  11. 6
      sapl/templates/lexml/layouts.yaml
  12. 61
      sapl/templates/materia/layouts.yaml
  13. 21
      sapl/templates/materia/subnav.yaml
  14. 14
      sapl/templates/norma/layouts.yaml
  15. 5
      sapl/templates/norma/subnav.yaml
  16. 4
      sapl/templates/painel/layouts.yaml
  17. 31
      sapl/templates/parlamentares/layouts.yaml
  18. 6
      sapl/templates/parlamentares/subnav.yaml
  19. 20
      sapl/templates/protocoloadm/layouts.yaml
  20. 28
      sapl/templates/sessao/layouts.yaml
  21. 29
      sapl/templates/sessao/subnav.yaml
  22. 5
      sapl/utils.py
  23. 1
      setup.py

76
sapl/base/templatetags/menus.py

@ -1,21 +1,20 @@
import os import yaml
from django import template from django import template
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
import yaml
register = template.Library() 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):
"""Renders a subnavigation for views of a certain object. """Renderiza sub navegação para objetos no padrão Mestre Detalhe
If not provided, path defaults to <app_name>/subnav.yaml Existem três possíveis fontes de busca do yaml
com precedência enumerada abaixo:
1) Se a variável path não é nula;
2) Se existe no contexto a chave subnav_template_name;
3) o path default: <app_name>/subnav.yaml
""" """
# TODO: 118n !!!!!!!!!!!!!!
# How to internationalize yaml files????
menu = None menu = None
root_pk = context.get('root_pk', None) root_pk = context.get('root_pk', None)
if not root_pk: if not root_pk:
@ -26,18 +25,29 @@ def subnav(context, path=None):
if root_pk: if root_pk:
request = context['request'] request = context['request']
"""
As implementações das Views de Modelos que são dados auxiliares e
de diversas app's estão concentradas em urls com prefixo 'sistema'.
Essas Views não possuem submenu de navegação e são incompativeis com a
execução deste subnav. Inicialmente, a maneira mais prática encontrada
de isolar foi com o teste abaixo.
"""
if 'sistema' in request.path: if 'sistema' in request.path:
return return
app = request.resolver_match.app_name rm = request.resolver_match
app_template = app.split('.') app_template = rm.app_name.rsplit('.', 1)[-1]
app_template = app_template[1] if app_template[
0] == 'sapl' and len(app_template) > 1 else app_template[0]
yaml_path = '%s/subnav.yaml' % app_template if path:
yaml_path = path
elif 'subnav_template_name' in context:
yaml_path = context['subnav_template_name']
else:
yaml_path = '%s/%s' % (app_template, 'subnav.yaml')
try: try:
""" Por padrão, são carragados dois Loaders, """
Por padrão, são carragados dois Loaders,
filesystem.Loader - busca em TEMPLATE_DIRS do projeto atual filesystem.Loader - busca em TEMPLATE_DIRS do projeto atual
app_directories.Loader - busca em todas apps instaladas app_directories.Loader - busca em todas apps instaladas
A função nativa abaixo busca em todos os Loaders Configurados. A função nativa abaixo busca em todos os Loaders Configurados.
@ -45,18 +55,18 @@ def subnav(context, path=None):
yaml_template = template.loader.get_template(yaml_path) yaml_template = template.loader.get_template(yaml_path)
rendered = yaml_template.render() rendered = yaml_template.render()
menu = yaml.load(rendered) menu = yaml.load(rendered)
resolve_urls_inplace(menu, root_pk, app, context) resolve_urls_inplace(menu, root_pk, rm, context)
except: except Exception as e:
pass print(e)
return {'menu': menu} return {'menu': menu}
def resolve_urls_inplace(menu, pk, app, context): def resolve_urls_inplace(menu, pk, rm, context):
if isinstance(menu, list): if isinstance(menu, list):
list_active = '' list_active = ''
for item in menu: for item in menu:
menuactive = resolve_urls_inplace(item, pk, app, context) menuactive = resolve_urls_inplace(item, pk, rm, context)
list_active = menuactive if menuactive else list_active list_active = menuactive if menuactive else list_active
if not isinstance(item, list): if not isinstance(item, list):
item['active'] = menuactive item['active'] = menuactive
@ -65,24 +75,42 @@ def resolve_urls_inplace(menu, pk, app, context):
else: else:
if 'url' in menu: if 'url' in menu:
url_name = menu['url'] url_name = menu['url']
menu['url'] = reverse('%s:%s' % (app, menu['url']), menu['url'] = reverse('%s:%s' % (rm.app_name, menu['url']),
kwargs={'pk': pk}) kwargs={'pk': pk})
menu['active'] = 'active'\ menu['active'] = 'active'\
if context['request'].path == menu['url'] else '' if context['request'].path == menu['url'] else ''
if not menu['active']: if not menu['active']:
# se não encontrada, procura a url acionada dentro do crud, caso """
# seja um. Se não encontrada diretamente,
procura a url acionada dentro do crud, caso seja um.
Serve para manter o active no suvnav correto ao acionar
as funcionalidades diretas do MasterDetailCrud, como:
- visualização de detalhes, adição, edição, remoção.
Casos para urls_extras:
Em relações de segundo nível, como ocorre em
(0) Comissões -> (1) Composição -> (2) Participação
(2) não tem ligação direta com (1) através da view. Para (2)
ser localizado, e o nav-tabs ou nav-pills do front-end serem
ativados foi inserido o teste de existência de urls_extras
para serem testadas e, sendo válidado, o active do front-end
seja devidamente colocado.
"""
view = context['view'] view = context['view']
if hasattr(view, '__class__') and\ if hasattr(view, '__class__') and\
hasattr(view.__class__, 'crud'): hasattr(view.__class__, 'crud'):
urls = view.__class__.crud.get_urls() urls = view.__class__.crud.get_urls()
for u in urls: for u in urls:
if u.name == url_name: if (u.name == url_name or
'urls_extras' in menu and
u.name in menu['urls_extras']):
menu['active'] = 'active' menu['active'] = 'active'
break break
if 'children' in menu: if 'children' in menu:
menu['active'] = resolve_urls_inplace( menu['active'] = resolve_urls_inplace(
menu['children'], pk, app, context) menu['children'], pk, rm, context)
return menu['active'] return menu['active']

3
sapl/base/tests/test_login.py

@ -1,7 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.contrib.auth import get_user_model
import pytest import pytest
from django.contrib.auth import get_user_model
pytestmark = pytest.mark.django_db pytestmark = pytest.mark.django_db

1
sapl/base/urls.py

@ -1,6 +1,5 @@
from django.conf.urls import include, url from django.conf.urls import include, url
from django.contrib.auth import views from django.contrib.auth import views
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.views.generic.base import TemplateView from django.views.generic.base import TemplateView
from .apps import AppConfig from .apps import AppConfig

3
sapl/compilacao/views.py

@ -1,6 +1,6 @@
import sys
from collections import OrderedDict from collections import OrderedDict
from datetime import datetime, timedelta from datetime import datetime, timedelta
import sys
from braces.views import FormMessagesMixin from braces.views import FormMessagesMixin
from django import forms from django import forms
@ -38,7 +38,6 @@ from sapl.compilacao.models import (Dispositivo, Nota,
from sapl.compilacao.utils import DISPOSITIVO_SELECT_RELATED from sapl.compilacao.utils import DISPOSITIVO_SELECT_RELATED
from sapl.crud.base import Crud, CrudListView, make_pagination from sapl.crud.base import Crud, CrudListView, make_pagination
TipoNotaCrud = Crud.build(TipoNota, 'tipo_nota') TipoNotaCrud = Crud.build(TipoNota, 'tipo_nota')
TipoVideCrud = Crud.build(TipoVide, 'tipo_vide') TipoVideCrud = Crud.build(TipoVide, 'tipo_vide')
TipoPublicacaoCrud = Crud.build(TipoPublicacao, 'tipo_publicacao') TipoPublicacaoCrud = Crud.build(TipoPublicacao, 'tipo_publicacao')

3
sapl/crispy_layout_mixin.py

@ -1,13 +1,12 @@
from math import ceil from math import ceil
from os.path import dirname, join
import rtyaml
from crispy_forms.bootstrap import FormActions from crispy_forms.bootstrap import FormActions
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Div, Fieldset, Layout, Submit from crispy_forms.layout import HTML, Div, Fieldset, Layout, Submit
from django import template from django import template
from django.utils import formats from django.utils import formats
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
import rtyaml
def heads_and_tails(list_of_lists): def heads_and_tails(list_of_lists):

4
sapl/crud/tests/stub_app/layouts.yaml

@ -1,7 +1,7 @@
Country: Country:
Basic Data: {% trans 'Basic Data' %}:
- name:9 continent - name:9 continent
- population is_cold - population is_cold
More Details: {% trans 'More Details' %}:
- description - description

3
sapl/base/layouts.yaml → sapl/templates/base/layouts.yaml

@ -1,5 +1,6 @@
{% load i18n %}
CasaLegislativa: CasaLegislativa:
Casa Legislativa: {% trans 'Casa Legislativa' %}:
- codigo:2 nome sigla - codigo:2 nome sigla
- endereco:8 cep - endereco:8 cep
- municipio:10 uf - municipio:10 uf

18
sapl/comissoes/layouts.yaml → sapl/templates/comissoes/layouts.yaml

@ -1,36 +1,36 @@
{% load i18n %}
CargoComissao: CargoComissao:
Período de composição de Comissão: {% trans 'Período de composição de Comissão' %}:
- nome:10 unico - nome:10 unico
Periodo: Periodo:
Cargo de Comissão: {% trans 'Cargo de Comissão' %}:
- data_inicio data_fim - data_inicio data_fim
TipoComissao: TipoComissao:
Tipo Comissão: {% trans 'Tipo Comissão' %}:
- nome:9 sigla - nome:9 sigla
- dispositivo_regimental:9 natureza - dispositivo_regimental:9 natureza
Comissao: Comissao:
Dados Básicos: {% trans 'Dados Básicos' %}:
- nome:8 sigla - nome:8 sigla
- tipo data_criacao unidade_deliberativa data_extincao - tipo data_criacao unidade_deliberativa data_extincao
Dados Complementares: {% trans 'Dados Complementares' %}:
- local_reuniao agenda_reuniao telefone_reuniao - local_reuniao agenda_reuniao telefone_reuniao
- endereco_secretaria telefone_secretaria fax_secretaria - endereco_secretaria telefone_secretaria fax_secretaria
- secretario email - secretario email
- finalidade - finalidade
Temporária: {% trans 'Temporária' %}:
- apelido_temp:8 data_instalacao_temp - apelido_temp:8 data_instalacao_temp
- data_final_prevista_temp data_prorrogada_temp data_fim_comissao - data_final_prevista_temp data_prorrogada_temp data_fim_comissao
Composicao: Composicao:
Composição: {% trans 'Composição' %}:
- periodo - periodo
Participacao: Participacao:
Participação: {% trans 'Participação' %}:
- parlamentar cargo titular - parlamentar cargo titular
- data_designacao data_desligamento - data_designacao data_desligamento
- motivo_desligamento - motivo_desligamento

8
sapl/templates/comissoes/subnav.yaml

@ -1,6 +1,8 @@
- title: Início {% load i18n %}
- title: {% trans 'Início' %}
url: comissao_detail url: comissao_detail
- title: Composição - title: {% trans 'Composição' %}
url: composicao_list url: composicao_list
- title: Matérias em Tramitação urls_extras: participacao_detail participacao_create participacao_edit participacao_delete
- title: {% trans 'Matérias em Tramitação' %}
url: materias_em_tramitacao url: materias_em_tramitacao

22
sapl/compilacao/layouts.yaml → sapl/templates/compilacao/layouts.yaml

@ -1,36 +1,36 @@
{% load i18n %}
TipoNota: TipoNota:
Tipo da Nota: {% trans 'Tipo da Nota' %}:
- sigla:2 nome - sigla:2 nome
- modelo - modelo
TipoVide: TipoVide:
Tipo de Vide: {% trans 'Tipo de Vide' %}:
- sigla:2 nome - sigla:2 nome
TipoPublicacao: TipoPublicacao:
Tipo de Publicação: {% trans 'Tipo de Publicação' %}:
- sigla:2 nome - sigla:2 nome
VeiculoPublicacao: VeiculoPublicacao:
Veículo de Publicação: {% trans 'Veículo de Publicação' %}:
- sigla:2 nome - sigla:2 nome
PerfilEstruturalTextoArticulado: PerfilEstruturalTextoArticulado:
Perfil Estrutural de Textos Articulados: {% trans 'Perfil Estrutural de Textos Articulados' %}:
- sigla:2 nome - sigla:2 nome
TipoDispositivo: TipoDispositivo:
Dados Básicos: {% trans 'Dados Básicos' %}:
- nome:8 class_css - nome:8 class_css
Configurações para Edição do Rótulo: {% trans 'Configurações para Edição do Rótulo' %}:
- rotulo_prefixo_texto rotulo_sufixo_texto rotulo_ordinal contagem_continua - rotulo_prefixo_texto rotulo_sufixo_texto rotulo_ordinal contagem_continua
Configurações para Renderização de Rótulo e Texto: {% trans 'Configurações para Renderização de Rótulo e Texto' %}:
- rotulo_prefixo_html rotulo_sufixo_html - rotulo_prefixo_html rotulo_sufixo_html
- texto_prefixo_html dispositivo_de_articulacao texto_sufixo_html - texto_prefixo_html dispositivo_de_articulacao texto_sufixo_html
Configurações para Nota Automática: {% trans 'Configurações para Nota Automática' %}:
- nota_automatica_prefixo_html nota_automatica_sufixo_html - nota_automatica_prefixo_html nota_automatica_sufixo_html
Configurações para Variações Numéricas: {% trans 'Configurações para Variações Numéricas' %}:
- formato_variacao0 - formato_variacao0
- rotulo_separador_variacao01:5 formato_variacao1 - rotulo_separador_variacao01:5 formato_variacao1
- rotulo_separador_variacao12:5 formato_variacao2 - rotulo_separador_variacao12:5 formato_variacao2

6
sapl/lexml/layouts.yaml → sapl/templates/lexml/layouts.yaml

@ -1,11 +1,11 @@
{% load i18n %}
LexmlProvedor: LexmlProvedor:
Provedor Lexml: {% trans 'Provedor Lexml' %}:
- id_provedor:2 nome - id_provedor:2 nome
- id_responsavel:2 nome_responsavel email_responsavel - id_responsavel:2 nome_responsavel email_responsavel
- xml - xml
LexmlPublicador: LexmlPublicador:
Publicador Lexml: {% trans 'Publicador Lexml' %}:
- id_publicador:2 nome sigla - id_publicador:2 nome sigla
- id_responsavel:2 nome_responsavel email_responsavel - id_responsavel:2 nome_responsavel email_responsavel

61
sapl/materia/layouts.yaml → sapl/templates/materia/layouts.yaml

@ -1,132 +1,133 @@
{% load i18n %}
Origem: Origem:
Origem: {% trans 'Origem' %}:
- nome:8 sigla - nome:8 sigla
TipoMateriaLegislativa: TipoMateriaLegislativa:
Tipo Matéria Legislativa: {% trans 'Tipo Matéria Legislativa' %}:
- sigla:4 descricao - sigla:4 descricao
RegimeTramitacao: RegimeTramitacao:
Tipo de Documento: {% trans 'Tipo de Documento' %}:
- descricao - descricao
TipoDocumento: TipoDocumento:
Regime Tramitação: {% trans 'Regime Tramitação' %}:
- descricao - descricao
TipoFimRelatoria: TipoFimRelatoria:
Tipo Fim de Relatoria: {% trans 'Tipo Fim de Relatoria' %}:
- descricao - descricao
MateriaLegislativa: MateriaLegislativa:
Identificação Básica: {% trans 'Identificação Básica' %}:
- tipo numero ano - tipo numero ano
- data_apresentacao numero_protocolo tipo_apresentacao - data_apresentacao numero_protocolo tipo_apresentacao
- texto_original - texto_original
Outras Informações: {% trans 'Outras Informações' %}:
- apelido dias_prazo polemica - apelido dias_prazo polemica
- objeto regime_tramitacao em_tramitacao - objeto regime_tramitacao em_tramitacao
- data_fim_prazo data_publicacao complementar - data_fim_prazo data_publicacao complementar
Origem Externa: {% trans 'Origem Externa' %}:
- tipo_origem_externa numero_origem_externa ano_origem_externa - tipo_origem_externa numero_origem_externa ano_origem_externa
- local_origem_externa data_origem_externa - local_origem_externa data_origem_externa
Dados Textuais: {% trans 'Dados Textuais' %}:
- ementa - ementa
- indexacao - indexacao
- observacao - observacao
Anexada: Anexada:
Matéria Anexada: {% trans 'Matéria Anexada' %}:
- tipo numero ano - tipo numero ano
- data_anexacao data_desanexacao - data_anexacao data_desanexacao
AnexadaDetail: AnexadaDetail:
Matéria Anexada: {% trans 'Matéria Anexada' %}:
- materia_principal - materia_principal
- materia_anexada - materia_anexada
- data_anexacao data_desanexacao - data_anexacao data_desanexacao
TipoAutor: TipoAutor:
Tipo Autor: {% trans 'Tipo Autor' %}:
- descricao - descricao
Autor: Autor:
Autor: {% trans 'Autor' %}:
- tipo:3 nome - tipo:3 nome
- username - username
Autoria: Autoria:
Autoria: {% trans 'Autoria' %}:
- autor partido primeiro_autor - autor partido primeiro_autor
DocumentoAcessorio: DocumentoAcessorio:
Documento Acessório: {% trans 'Documento Acessório' %}:
- tipo nome data - tipo nome data
- autor - autor
- ementa - ementa
- arquivo - arquivo
Numeracao: Numeracao:
Numeração: {% trans 'Numeração' %}:
- tipo_materia numero_materia ano_materia data_materia - tipo_materia numero_materia ano_materia data_materia
Orgao: Orgao:
Órgão: {% trans 'Órgão' %}:
- nome:4 sigla telefone endereco unidade_deliberativa - nome:4 sigla telefone endereco unidade_deliberativa
Relatoria: Relatoria:
Relatoria: {% trans 'Relatoria' %}:
- comissao - comissao
- data_designacao_relator data_destituicao_relator - data_designacao_relator data_destituicao_relator
- parlamentar tipo_fim_relatoria - parlamentar tipo_fim_relatoria
TipoProposicao: TipoProposicao:
Tipo Proposição: {% trans 'Tipo Proposição' %}:
- descricao - descricao
- materia_ou_documento tipo_documento - materia_ou_documento tipo_documento
- modelo - modelo
ProposicaoCreate: ProposicaoCreate:
Proposição: {% trans 'Proposição' %}:
- tipo data_envio - tipo data_envio
- descricao - descricao
Materia: {% trans 'Materia' %}:
- tipo_materia numero_materia ano_materia - tipo_materia numero_materia ano_materia
Complemento: {% trans 'Complemento' %}:
- texto_original - texto_original
Proposicao: Proposicao:
Proposição: {% trans 'Proposição' %}:
- tipo data_envio - tipo data_envio
- descricao - descricao
Materia: {% trans 'Materia' %}:
- materia - materia
Complemento: {% trans 'Complemento' %}:
- texto_original - texto_original
StatusTramitacao: StatusTramitacao:
Status Tramitação: {% trans 'Status Tramitação' %}:
- indicador:3 sigla:2 descricao - indicador:3 sigla:2 descricao
UnidadeTramitacao: UnidadeTramitacao:
Unidade Tramitação: {% trans 'Unidade Tramitação' %}:
- orgao - orgao
- comissao - comissao
- parlamentar - parlamentar
Tramitacao: Tramitacao:
Tramitação: {% trans 'Tramitação' %}:
- unidade_tramitacao_local unidade_tramitacao_destino - unidade_tramitacao_local unidade_tramitacao_destino
- data_tramitacao data_encaminhamento data_fim_prazo - data_tramitacao data_encaminhamento data_fim_prazo
- status turno urgente - status turno urgente
- texto - texto
DespachoInicial: DespachoInicial:
Despacho Inicial: {% trans 'Despacho Inicial' %}:
- comissao - comissao
LegislacaoCitadaDetail: LegislacaoCitadaDetail:
Legislação Citada: {% trans 'Legislação Citada' %}:
- norma - norma
- disposicoes parte livro titulo - disposicoes parte livro titulo
- capitulo secao subsecao artigo - capitulo secao subsecao artigo

21
sapl/templates/materia/subnav.yaml

@ -1,25 +1,26 @@
- title: Início {% load i18n %}
- title: {% trans 'Início' %}
url: materialegislativa_detail url: materialegislativa_detail
- title: Anexada - title: {% trans 'Anexada' %}
url: anexada_list url: anexada_list
- title: Autoria - title: {% trans 'Autoria' %}
url: autoria_list url: autoria_list
- title: Despacho Inicial - title: {% trans 'Despacho Inicial' %}
url: despachoinicial_list url: despachoinicial_list
- title: Documento Acessório - title: {% trans 'Documento Acessório' %}
url: documentoacessorio_list url: documentoacessorio_list
- title: Legislação Citada - title: {% trans 'Legislação Citada' %}
url: legislacaocitada_list url: legislacaocitada_list
- title: Numeração - title: {% trans 'Numeração' %}
url: numeracao_list url: numeracao_list
- title: Tramitação - title: {% trans 'Tramitação' %}
url: tramitacao_list url: tramitacao_list
- title: Relatoria - title: {% trans 'Relatoria' %}
url: relatoria_list url: relatoria_list
# Opção adicionada para chamar o TextoArticulado da matéria. # Opção adicionada para chamar o TextoArticulado da matéria.
# para integração foram necessárias apenas criar a url materia_ta em urls.py # para integração foram necessárias apenas criar a url materia_ta em urls.py
# e a view MateriaTaView(IntegracaoTaView) em views.py # e a view MateriaTaView(IntegracaoTaView) em views.py
# Em nada mais a integração interfere em MateriaLegislativa # Em nada mais a integração interfere em MateriaLegislativa
- title: Texto - title: {% trans 'Texto' %}
url: materia_ta url: materia_ta

14
sapl/norma/layouts.yaml → sapl/templates/norma/layouts.yaml

@ -1,14 +1,14 @@
{% load i18n %}
AssuntoNorma: AssuntoNorma:
Assunto Norma Jurídica: {% trans 'Assunto Norma Jurídica' %}:
- assunto descricao - assunto descricao
TipoNormaJuridica: TipoNormaJuridica:
Tipo Norma Jurídica: {% trans 'Tipo Norma Jurídica' %}:
- descricao sigla equivalente_lexml - descricao sigla equivalente_lexml
NormaJuridica: NormaJuridica:
Identificação Básica: {% trans 'Identificação Básica' %}:
- tipo numero ano - tipo numero ano
- data esfera_federacao complemento - data esfera_federacao complemento
- materia - materia
@ -19,7 +19,7 @@ NormaJuridica:
- observacao - observacao
NormaJuridicaCreate: NormaJuridicaCreate:
Identificação Básica: {% trans 'Identificação Básica' %}:
- tipo numero ano - tipo numero ano
- data esfera_federacao complemento - data esfera_federacao complemento
- tipo_materia numero_materia ano_materia - tipo_materia numero_materia ano_materia
@ -30,14 +30,14 @@ NormaJuridicaCreate:
- observacao - observacao
LegislacaoCitada: LegislacaoCitada:
Legislação Citada: {% trans 'Legislação Citada' %}:
- tipo numero ano - tipo numero ano
- disposicoes parte livro titulo - disposicoes parte livro titulo
- capitulo secao subsecao artigo - capitulo secao subsecao artigo
- paragrafo inciso alinea item - paragrafo inciso alinea item
LegislacaoCitadaDetail: LegislacaoCitadaDetail:
Legislação Citada: {% trans 'Legislação Citada' %}:
- norma - norma
- disposicoes parte livro titulo - disposicoes parte livro titulo
- capitulo secao subsecao artigo - capitulo secao subsecao artigo

5
sapl/templates/norma/subnav.yaml

@ -1,9 +1,10 @@
- title: Início {% load i18n %}
- title: {% trans 'Início' %}
url: normajuridica_detail url: normajuridica_detail
# Opção adicionada para chamar o TextoArticulado da norma. # Opção adicionada para chamar o TextoArticulado da norma.
# para integração foram necessárias apenas criar a url norma_ta em urls.py # para integração foram necessárias apenas criar a url norma_ta em urls.py
# e a view NormaTaView(IntegracaoTaView) em views.py # e a view NormaTaView(IntegracaoTaView) em views.py
# Em nada mais a integração interfere em NormaJuridica # Em nada mais a integração interfere em NormaJuridica
- title: Texto - title: {% trans 'Texto' %}
url: norma_ta url: norma_ta

4
sapl/painel/layouts.yaml → sapl/templates/painel/layouts.yaml

@ -1,4 +1,4 @@
{% load i18n %}
Cronometro:
Cronometro: Cronometro:
{% trans 'Cronometro' %}:
- status:3 data_cronometro:6 tipo - status:3 data_cronometro:6 tipo

31
sapl/templates/parlamentares/layouts.yaml

@ -4,29 +4,29 @@ CargoMesa:
- descricao:10 unico - descricao:10 unico
Legislatura: Legislatura:
Legislatura: {% trans 'Legislatura' %}:
- data_inicio data_fim data_eleicao - data_inicio data_fim data_eleicao
Coligacao: Coligacao:
Coligação: {% trans 'Coligação' %}:
- nome:5 legislatura:5 numero_votos - nome:5 legislatura:5 numero_votos
Partido: Partido:
Partido Político: {% trans 'Partido Político' %}:
- nome:6 sigla data_criacao data_extincao - nome:6 sigla data_criacao data_extincao
Dependente: Dependente:
Dependentes: {% trans 'Dependentes' %}:
- nome - nome
- tipo sexo data_nascimento - tipo sexo data_nascimento
- cpf rg titulo_eleitor - cpf rg titulo_eleitor
SessaoLegislativa: SessaoLegislativa:
Sessão Legislativa: {% trans 'Sessão Legislativa' %}:
- numero:4 tipo:4 legislatura:4 data_inicio data_fim data_inicio_intervalo data_fim_intervalo - numero:4 tipo:4 legislatura:4 data_inicio data_fim data_inicio_intervalo data_fim_intervalo
Parlamentar: Parlamentar:
Cadastro do Parlamentar: {% trans 'Cadastro do Parlamentar' %}:
- nome_parlamentar:8 ativo - nome_parlamentar:8 ativo
- nome_completo - nome_completo
- nivel_instrucao sexo data_nascimento - nivel_instrucao sexo data_nascimento
@ -43,9 +43,9 @@ Parlamentar:
- biografia - biografia
ParlamentarCreate: ParlamentarCreate:
Dados do Mandato: {% trans 'Dados do Mandato' %}:
- legislatura data_expedicao_diploma - legislatura data_expedicao_diploma
Cadastro do Parlamentar: {% trans 'Cadastro do Parlamentar' %}:
- nome_parlamentar:8 ativo - nome_parlamentar:8 ativo
- nome_completo - nome_completo
- nivel_instrucao sexo data_nascimento - nivel_instrucao sexo data_nascimento
@ -61,34 +61,33 @@ ParlamentarCreate:
- fotografia - fotografia
- biografia - biografia
Filiacao: Filiacao:
'Filiações Partidárias ': {% trans ''Filiações Partidárias '' %}:
- partido data data_desfiliacao - partido data data_desfiliacao
Mandato: Mandato:
Mandato: {% trans 'Mandato' %}:
- legislatura coligacao votos_recebidos - legislatura coligacao votos_recebidos
- data_fim_mandato data_expedicao_diploma - data_fim_mandato data_expedicao_diploma
- tipo_afastamento - tipo_afastamento
- observacao - observacao
TipoDependente: TipoDependente:
Tipo de Dependente: {% trans 'Tipo de Dependente' %}:
- descricao - descricao
NivelInstrucao: NivelInstrucao:
Nível Instrução: {% trans 'Nível Instrução' %}:
- descricao - descricao
TipoAfastamento: TipoAfastamento:
Tipo de Afastamento: {% trans 'Tipo de Afastamento' %}:
- descricao:5 dispositivo:5 afastamento - descricao:5 dispositivo:5 afastamento
SituacaoMilitar: SituacaoMilitar:
Tipo Situação Militar: {% trans 'Tipo Situação Militar' %}:
- descricao - descricao
ComposicaoColigacao: ComposicaoColigacao:
'Nome do Partido': {% trans ''Nome do Partido'' %}:
- partido - partido

6
sapl/templates/parlamentares/subnav.yaml

@ -1,9 +1,9 @@
{% load i18n %} {% load i18n %}
- title: {% trans 'Início' %} - title: {% trans 'Início' %}
url: parlamentar_detail url: parlamentar_detail
- title: Mandatos - title: {% trans 'Mandatos' %}
url: mandato_list url: mandato_list
- title: Filiações Partidárias - title: {% trans 'Filiações Partidárias' %}
url: filiacao_list url: filiacao_list
- title: Dependentes - title: {% trans 'Dependentes' %}
url: dependente_list url: dependente_list

20
sapl/protocoloadm/layouts.yaml → sapl/templates/protocoloadm/layouts.yaml

@ -1,39 +1,39 @@
{% load i18n %}
TipoDocumentoAdministrativo:
TipoDocumentoAdministrativo: TipoDocumentoAdministrativo:
{% trans 'Tipo Documento Administrativo' %}:
- sigla:4 descricao - sigla:4 descricao
DocumentoAdministrativo: DocumentoAdministrativo:
Indentificação Básica: {% trans 'Indentificação Básica' %}:
- tipo numero ano - tipo numero ano
- data numero_protocolo - data numero_protocolo
- assunto - assunto
- interessado tramitacao - interessado tramitacao
- texto_integral - texto_integral
Outras Informações: {% trans 'Outras Informações' %}:
- dias_prazo data_fim_prazo - dias_prazo data_fim_prazo
- observacao - observacao
DocumentoAcessorioAdministrativo: DocumentoAcessorioAdministrativo:
Documento Acessório: {% trans 'Documento Acessório' %}:
- tipo nome data - tipo nome data
- autor - autor
- arquivo - arquivo
- assunto - assunto
StatusTramitacaoAdministrativo: StatusTramitacaoAdministrativo:
Status Tramitação Administrativo: {% trans 'Status Tramitação Administrativo' %}:
- indicador:3 sigla:2 descricao - indicador:3 sigla:2 descricao
TramitacaoAdministrativo: TramitacaoAdministrativo:
Tramitação: {% trans 'Tramitação' %}:
- data_tramitacao:4 unidade_tramitacao_local - data_tramitacao:4 unidade_tramitacao_local
- status:4 unidade_tramitacao_destino - status:4 unidade_tramitacao_destino
- data_encaminhamento data_fim_prazo - data_encaminhamento data_fim_prazo
- texto - texto
Protocolo: Protocolo:
Indentificação Documento: {% trans 'Indentificação Documento' %}:
- tipo_protocolo - tipo_protocolo
- tipo_documento numero_paginas - tipo_documento numero_paginas
- assunto_ementa - assunto_ementa
@ -41,12 +41,12 @@ Protocolo:
- observacao - observacao
Protocolo: Protocolo:
Indentificação da Matéria: {% trans 'Indentificação da Matéria' %}:
- tipo_materia numero_paginas - tipo_materia numero_paginas
- assunto_ementa - assunto_ementa
- autor - autor
- observacao - observacao
TipoInstituicao: TipoInstituicao:
Tipo de Instituição: {% trans 'Tipo de Instituição' %}:
- descricao - descricao

28
sapl/sessao/layouts.yaml → sapl/templates/sessao/layouts.yaml

@ -1,10 +1,10 @@
{% load i18n %}
TipoSessaoPlenaria: TipoSessaoPlenaria:
Tipo de Sessão Plenária: {% trans 'Tipo de Sessão Plenária' %}:
- nome quorum_minimo - nome quorum_minimo
SessaoPlenaria: SessaoPlenaria:
Dados Básicos: {% trans 'Dados Básicos' %}:
- numero:1 tipo:3 legislatura sessao_legislativa - numero:1 tipo:3 legislatura sessao_legislativa
- data_inicio:5 hora_inicio:5 iniciada - data_inicio:5 hora_inicio:5 iniciada
- data_fim:5 hora_fim:5 finalizada - data_fim:5 hora_fim:5 finalizada
@ -12,62 +12,62 @@ SessaoPlenaria:
- url_audio url_video - url_audio url_video
ExpedienteMateria: ExpedienteMateria:
Cadastro de Matérias do Expediente: {% trans 'Cadastro de Matérias do Expediente' %}:
- data_ordem tip_sessao_FIXME numero_ordem - data_ordem tip_sessao_FIXME numero_ordem
- tip_id_basica_FIXME num_ident_basica_FIXME ano_ident_basica_FIXME - tip_id_basica_FIXME num_ident_basica_FIXME ano_ident_basica_FIXME
- tipo_votacao - tipo_votacao
- observacao - observacao
OrdemDia: OrdemDia:
Cadastro de Matérias da Ordem do Dia: {% trans 'Cadastro de Matérias da Ordem do Dia' %}:
- data_ordem tip_sessao_FIXME numero_ordem - data_ordem tip_sessao_FIXME numero_ordem
- tip_id_basica_FIXME num_ident_basica_FIXME ano_ident_basica_FIXME - tip_id_basica_FIXME num_ident_basica_FIXME ano_ident_basica_FIXME
- tipo_votacao - tipo_votacao
- observacao - observacao
TipoResultadoVotacao: TipoResultadoVotacao:
Tipo de Resultado da Votação: {% trans 'Tipo de Resultado da Votação' %}:
- nome - nome
TipoExpediente: TipoExpediente:
Tipo de Expediente: {% trans 'Tipo de Expediente' %}:
- nome - nome
RegistroVotacao: RegistroVotacao:
Votação Simbólica: {% trans 'Votação Simbólica' %}:
- numero_votos_sim numero_votos_nao numero_abstencoes nao_votou_FIXME - numero_votos_sim numero_votos_nao numero_abstencoes nao_votou_FIXME
- votacao_branco_FIXME ind_votacao_presidente_FIXME - votacao_branco_FIXME ind_votacao_presidente_FIXME
- tipo_resultado_votacao - tipo_resultado_votacao
- observacao - observacao
Orador: Orador:
Orador das Explicações Pessoais: {% trans 'Orador das Explicações Pessoais' %}:
- numero_ordem parlamentar url_discurso - numero_ordem parlamentar url_discurso
OradorExpediente: OradorExpediente:
Orador do Expediente: {% trans 'Orador do Expediente' %}:
- numero_ordem parlamentar url_discurso - numero_ordem parlamentar url_discurso
ExpedienteMateria: ExpedienteMateria:
Matéria do Expediente: {% trans 'Matéria do Expediente' %}:
- data_ordem numero_ordem - data_ordem numero_ordem
- tipo_materia numero_materia ano_materia - tipo_materia numero_materia ano_materia
- tipo_votacao - tipo_votacao
- observacao - observacao
ExpedienteMateriaDetail: ExpedienteMateriaDetail:
Matérias do Expediente: {% trans 'Matérias do Expediente' %}:
- materia - materia
- tipo_votacao - tipo_votacao
- observacao - observacao
Bancada: Bancada:
Bancada: {% trans 'Bancada' %}:
- legislatura - legislatura
- nome partido - nome partido
- data_criacao data_extincao - data_criacao data_extincao
- descricao - descricao
CargoBancada: CargoBancada:
Cargo de Bancada: {% trans 'Cargo de Bancada' %}:
- nome_cargo:8 cargo_unico - nome_cargo:8 cargo_unico

29
sapl/templates/sessao/subnav.yaml

@ -1,32 +1,33 @@
- title: Abertura {% load i18n %}
- title: {% trans 'Abertura' %}
children: children:
- title: Dados Básicos - title: {% trans 'Dados Básicos' %}
url: sessaoplenaria_detail url: sessaoplenaria_detail
- title: Mesa - title: {% trans 'Mesa' %}
url: mesa url: mesa
- title: Presença - title: {% trans 'Presença' %}
url: presenca url: presenca
- title: Explicações Pessoais - title: {% trans 'Explicações Pessoais' %}
url: orador_list url: orador_list
- title: Expedientes - title: {% trans 'Expedientes' %}
children: children:
- title: Expediente Diversos - title: {% trans 'Expediente Diversos' %}
url: expediente url: expediente
- title: Matérias Expediente - title: {% trans 'Matérias Expediente' %}
url: expedientemateria_list url: expedientemateria_list
- title: Oradores do Expediente - title: {% trans 'Oradores do Expediente' %}
url: oradorexpediente_list url: oradorexpediente_list
- title: Ordem do Dia - title: {% trans 'Ordem do Dia' %}
children: children:
- title: Matérias Ordem do Dia - title: {% trans 'Matérias Ordem do Dia' %}
url: materiaordemdia_list url: materiaordemdia_list
- title: Presença Ordem do Dia - title: {% trans 'Presença Ordem do Dia' %}
url: presencaordemdia url: presencaordemdia
- title: Painel Eletrônico - title: {% trans 'Painel Eletrônico' %}
url: painel url: painel
- title: Resumo - title: {% trans 'Resumo' %}
url: resumo url: resumo

5
sapl/utils.py

@ -1,16 +1,13 @@
from datetime import date from datetime import date
from functools import wraps from functools import wraps
import os.path
from compressor.utils import get_class import magic
from django.apps import apps from django.apps import apps
from django.conf import settings from django.conf import settings
from django.contrib import admin from django.contrib import admin
from django.core.checks import Warning, register
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from floppyforms import ClearableFileInput from floppyforms import ClearableFileInput
import magic
def get_settings_auth_user_model(): def get_settings_auth_user_model():

1
setup.py

@ -1,4 +1,5 @@
import os import os
from setuptools import find_packages, setup from setuptools import find_packages, setup
with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme: with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme:

Loading…
Cancel
Save