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. 82
      sapl/base/templatetags/menus.py
  2. 3
      sapl/base/tests/test_login.py
  3. 1
      sapl/base/urls.py
  4. 7
      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. 5
      setup.py

82
sapl/base/templatetags/menus.py

@ -1,21 +1,20 @@
import os
import yaml
from django import template
from django.core.urlresolvers import reverse
import yaml
register = template.Library()
@register.inclusion_tag('menus/subnav.html', takes_context=True)
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
root_pk = context.get('root_pk', None)
if not root_pk:
@ -26,37 +25,48 @@ def subnav(context, path=None):
if root_pk:
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:
return
app = request.resolver_match.app_name
app_template = app.split('.')
app_template = app_template[1] if app_template[
0] == 'sapl' and len(app_template) > 1 else app_template[0]
rm = request.resolver_match
app_template = rm.app_name.rsplit('.', 1)[-1]
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:
""" Por padrão, são carragados dois Loaders,
filesystem.Loader - busca em TEMPLATE_DIRS do projeto atual
app_directories.Loader - busca em todas apps instaladas
A função nativa abaixo busca em todos os Loaders Configurados.
"""
Por padrão, são carragados dois Loaders,
filesystem.Loader - busca em TEMPLATE_DIRS do projeto atual
app_directories.Loader - busca em todas apps instaladas
A função nativa abaixo busca em todos os Loaders Configurados.
"""
yaml_template = template.loader.get_template(yaml_path)
rendered = yaml_template.render()
menu = yaml.load(rendered)
resolve_urls_inplace(menu, root_pk, app, context)
except:
pass
resolve_urls_inplace(menu, root_pk, rm, context)
except Exception as e:
print(e)
return {'menu': menu}
def resolve_urls_inplace(menu, pk, app, context):
def resolve_urls_inplace(menu, pk, rm, context):
if isinstance(menu, list):
list_active = ''
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
if not isinstance(item, list):
item['active'] = menuactive
@ -65,24 +75,42 @@ def resolve_urls_inplace(menu, pk, app, context):
else:
if 'url' in menu:
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})
menu['active'] = 'active'\
if context['request'].path == menu['url'] else ''
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']
if hasattr(view, '__class__') and\
hasattr(view.__class__, 'crud'):
urls = view.__class__.crud.get_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'
break
if 'children' in menu:
menu['active'] = resolve_urls_inplace(
menu['children'], pk, app, context)
menu['children'], pk, rm, context)
return menu['active']

3
sapl/base/tests/test_login.py

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

1
sapl/base/urls.py

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

7
sapl/compilacao/views.py

@ -1,6 +1,6 @@
import sys
from collections import OrderedDict
from datetime import datetime, timedelta
import sys
from braces.views import FormMessagesMixin
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.crud.base import Crud, CrudListView, make_pagination
TipoNotaCrud = Crud.build(TipoNota, 'tipo_nota')
TipoVideCrud = Crud.build(TipoVide, 'tipo_vide')
TipoPublicacaoCrud = Crud.build(TipoPublicacao, 'tipo_publicacao')
@ -2144,10 +2143,10 @@ class DispositivoSearchFragmentFormView(ListView):
"""
ao integrar um model ao app de compilação, se este model possuir
texto_articulado = GenericRelation(
TextoArticulado, related_query_name='texto_articulado')
será uma integração mais eficiente para as buscas de Dispositivos
"""
if hasattr(model_class, 'texto_articulado'):

3
sapl/crispy_layout_mixin.py

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

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

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

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

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

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

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

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

@ -1,36 +1,36 @@
{% load i18n %}
TipoNota:
Tipo da Nota:
{% trans 'Tipo da Nota' %}:
- sigla:2 nome
- modelo
TipoVide:
Tipo de Vide:
{% trans 'Tipo de Vide' %}:
- sigla:2 nome
TipoPublicacao:
Tipo de Publicação:
{% trans 'Tipo de Publicação' %}:
- sigla:2 nome
VeiculoPublicacao:
Veículo de Publicação:
{% trans 'Veículo de Publicação' %}:
- sigla:2 nome
PerfilEstruturalTextoArticulado:
Perfil Estrutural de Textos Articulados:
{% trans 'Perfil Estrutural de Textos Articulados' %}:
- sigla:2 nome
TipoDispositivo:
Dados Básicos:
{% trans 'Dados Básicos' %}:
- 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
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
- 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
Configurações para Variações Numéricas:
{% trans 'Configurações para Variações Numéricas' %}:
- formato_variacao0
- rotulo_separador_variacao01:5 formato_variacao1
- rotulo_separador_variacao12:5 formato_variacao2

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

@ -1,11 +1,11 @@
{% load i18n %}
LexmlProvedor:
Provedor Lexml:
{% trans 'Provedor Lexml' %}:
- id_provedor:2 nome
- id_responsavel:2 nome_responsavel email_responsavel
- xml
LexmlPublicador:
Publicador Lexml:
{% trans 'Publicador Lexml' %}:
- id_publicador:2 nome sigla
- 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:
{% trans 'Origem' %}:
- nome:8 sigla
TipoMateriaLegislativa:
Tipo Matéria Legislativa:
{% trans 'Tipo Matéria Legislativa' %}:
- sigla:4 descricao
RegimeTramitacao:
Tipo de Documento:
{% trans 'Tipo de Documento' %}:
- descricao
TipoDocumento:
Regime Tramitação:
{% trans 'Regime Tramitação' %}:
- descricao
TipoFimRelatoria:
Tipo Fim de Relatoria:
{% trans 'Tipo Fim de Relatoria' %}:
- descricao
MateriaLegislativa:
Identificação Básica:
{% trans 'Identificação Básica' %}:
- tipo numero ano
- data_apresentacao numero_protocolo tipo_apresentacao
- texto_original
Outras Informações:
{% trans 'Outras Informações' %}:
- apelido dias_prazo polemica
- objeto regime_tramitacao em_tramitacao
- data_fim_prazo data_publicacao complementar
Origem Externa:
{% trans 'Origem Externa' %}:
- tipo_origem_externa numero_origem_externa ano_origem_externa
- local_origem_externa data_origem_externa
Dados Textuais:
{% trans 'Dados Textuais' %}:
- ementa
- indexacao
- observacao
Anexada:
Matéria Anexada:
{% trans 'Matéria Anexada' %}:
- tipo numero ano
- data_anexacao data_desanexacao
AnexadaDetail:
Matéria Anexada:
{% trans 'Matéria Anexada' %}:
- materia_principal
- materia_anexada
- data_anexacao data_desanexacao
TipoAutor:
Tipo Autor:
{% trans 'Tipo Autor' %}:
- descricao
Autor:
Autor:
{% trans 'Autor' %}:
- tipo:3 nome
- username
Autoria:
Autoria:
{% trans 'Autoria' %}:
- autor partido primeiro_autor
DocumentoAcessorio:
Documento Acessório:
{% trans 'Documento Acessório' %}:
- tipo nome data
- autor
- ementa
- arquivo
Numeracao:
Numeração:
{% trans 'Numeração' %}:
- tipo_materia numero_materia ano_materia data_materia
Orgao:
Órgão:
{% trans 'Órgão' %}:
- nome:4 sigla telefone endereco unidade_deliberativa
Relatoria:
Relatoria:
{% trans 'Relatoria' %}:
- comissao
- data_designacao_relator data_destituicao_relator
- parlamentar tipo_fim_relatoria
TipoProposicao:
Tipo Proposição:
{% trans 'Tipo Proposição' %}:
- descricao
- materia_ou_documento tipo_documento
- modelo
ProposicaoCreate:
Proposição:
{% trans 'Proposição' %}:
- tipo data_envio
- descricao
Materia:
{% trans 'Materia' %}:
- tipo_materia numero_materia ano_materia
Complemento:
{% trans 'Complemento' %}:
- texto_original
Proposicao:
Proposição:
{% trans 'Proposição' %}:
- tipo data_envio
- descricao
Materia:
{% trans 'Materia' %}:
- materia
Complemento:
{% trans 'Complemento' %}:
- texto_original
StatusTramitacao:
Status Tramitação:
{% trans 'Status Tramitação' %}:
- indicador:3 sigla:2 descricao
UnidadeTramitacao:
Unidade Tramitação:
{% trans 'Unidade Tramitação' %}:
- orgao
- comissao
- parlamentar
Tramitacao:
Tramitação:
{% trans 'Tramitação' %}:
- unidade_tramitacao_local unidade_tramitacao_destino
- data_tramitacao data_encaminhamento data_fim_prazo
- status turno urgente
- texto
DespachoInicial:
Despacho Inicial:
{% trans 'Despacho Inicial' %}:
- comissao
LegislacaoCitadaDetail:
Legislação Citada:
{% trans 'Legislação Citada' %}:
- norma
- disposicoes parte livro titulo
- 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
- title: Anexada
- title: {% trans 'Anexada' %}
url: anexada_list
- title: Autoria
- title: {% trans 'Autoria' %}
url: autoria_list
- title: Despacho Inicial
- title: {% trans 'Despacho Inicial' %}
url: despachoinicial_list
- title: Documento Acessório
- title: {% trans 'Documento Acessório' %}
url: documentoacessorio_list
- title: Legislação Citada
- title: {% trans 'Legislação Citada' %}
url: legislacaocitada_list
- title: Numeração
- title: {% trans 'Numeração' %}
url: numeracao_list
- title: Tramitação
- title: {% trans 'Tramitação' %}
url: tramitacao_list
- title: Relatoria
- title: {% trans 'Relatoria' %}
url: relatoria_list
# 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
# e a view MateriaTaView(IntegracaoTaView) em views.py
# Em nada mais a integração interfere em MateriaLegislativa
- title: Texto
- title: {% trans 'Texto' %}
url: materia_ta

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

@ -1,14 +1,14 @@
{% load i18n %}
AssuntoNorma:
Assunto Norma Jurídica:
{% trans 'Assunto Norma Jurídica' %}:
- assunto descricao
TipoNormaJuridica:
Tipo Norma Jurídica:
{% trans 'Tipo Norma Jurídica' %}:
- descricao sigla equivalente_lexml
NormaJuridica:
Identificação Básica:
{% trans 'Identificação Básica' %}:
- tipo numero ano
- data esfera_federacao complemento
- materia
@ -19,7 +19,7 @@ NormaJuridica:
- observacao
NormaJuridicaCreate:
Identificação Básica:
{% trans 'Identificação Básica' %}:
- tipo numero ano
- data esfera_federacao complemento
- tipo_materia numero_materia ano_materia
@ -30,14 +30,14 @@ NormaJuridicaCreate:
- observacao
LegislacaoCitada:
Legislação Citada:
{% trans 'Legislação Citada' %}:
- tipo numero ano
- disposicoes parte livro titulo
- capitulo secao subsecao artigo
- paragrafo inciso alinea item
LegislacaoCitadaDetail:
Legislação Citada:
{% trans 'Legislação Citada' %}:
- norma
- disposicoes parte livro titulo
- 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
# Opção adicionada para chamar o TextoArticulado da norma.
# para integração foram necessárias apenas criar a url norma_ta em urls.py
# e a view NormaTaView(IntegracaoTaView) em views.py
# Em nada mais a integração interfere em NormaJuridica
- title: Texto
- title: {% trans 'Texto' %}
url: norma_ta

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

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

31
sapl/templates/parlamentares/layouts.yaml

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

6
sapl/templates/parlamentares/subnav.yaml

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

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

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

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

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

29
sapl/templates/sessao/subnav.yaml

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

5
sapl/utils.py

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

5
setup.py

@ -1,4 +1,5 @@
import os
from setuptools import find_packages, setup
with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme:
@ -33,7 +34,7 @@ install_requires = [
'unipath==1.1',
'python-magic==0.4.10',
'gunicorn==19.4.5',
#git+git://github.com/interlegis/trml2pdf.git
# git+git://github.com/interlegis/trml2pdf.git
]
setup(
name='interlegis-sapl',
@ -60,5 +61,5 @@ setup(
'Topic :: Internet :: WWW/HTTP',
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
],
install_requires = install_requires,
install_requires=install_requires,
)

Loading…
Cancel
Save