Browse Source

Usa arqs yaml para definição de layouts

pull/237/head
Marcio Mazza 9 years ago
parent
commit
056ca40a3a
  1. 52
      comissoes/views.py
  2. 87
      compilacao/views.py
  3. 21
      crispy_layout_mixin.py
  4. 3
      crud.py
  5. 8
      crud_tests/test_flux.py
  6. 9
      crud_tests/views.py
  7. 23
      lexml/views.py
  8. 220
      materia/views.py
  9. 61
      norma/views.py
  10. 8
      painel/views.py
  11. 142
      parlamentares/views.py
  12. 78
      protocoloadm/views.py
  13. 80
      sessao/views.py
  14. 8
      test_crispy_layout_mixin.py

52
comissoes/views.py

@ -14,54 +14,10 @@ from .forms import (CadastrarComissaoForm, ComposicaoForm,
from .models import (CargoComissao, Comissao, Composicao, Participacao, from .models import (CargoComissao, Comissao, Composicao, Participacao,
Periodo, TipoComissao) Periodo, TipoComissao)
cargo_crud = Crud( cargo_crud = Crud(CargoComissao, 'cargo_comissao')
CargoComissao, 'cargo_comissao', [ periodo_composicao_crud = Crud(Periodo, 'periodo_composicao_comissao')
tipo_comissao_crud = Crud(TipoComissao, 'tipo_comissao')
[_('Período de composição de Comissão'), comissao_crud = Crud(Comissao, 'modulo_comissoes')
[('nome', 10), ('unico', 2)]],
])
periodo_composicao_crud = Crud(
Periodo, 'periodo_composicao_comissao', [
[_('Cargo de Comissão'),
[('data_inicio', 6), ('data_fim', 6)]],
])
tipo_comissao_crud = Crud(
TipoComissao, 'tipo_comissao', [
[_('Tipo Comissão'),
[('nome', 9), ('sigla', 3)],
[('dispositivo_regimental', 9), ('natureza', 3)]],
])
comissao_crud = Crud(
Comissao, 'modulo_comissoes', [
[_('Dados Básicos'),
[('nome', 9), ('sigla', 3)],
[('tipo', 3),
('data_criacao', 3),
('unidade_deliberativa', 3),
('data_extincao', 3)]],
[_('Dados Complementares'),
[('local_reuniao', 4),
('agenda_reuniao', 4),
('telefone_reuniao', 4)],
[('endereco_secretaria', 4),
('telefone_secretaria', 4),
('fax_secretaria', 4)],
[('secretario', 4), ('email', 8)],
[('finalidade', 12)]],
[_('Temporária'),
[('apelido_temp', 8),
('data_instalacao_temp', 4)],
[('data_final_prevista_temp', 4),
('data_prorrogada_temp', 4),
('data_fim_comissao', 4)]],
])
class CadastrarComissaoView(FormMixin, GenericView): class CadastrarComissaoView(FormMixin, GenericView):

87
compilacao/views.py

@ -42,86 +42,13 @@ DISPOSITIVO_SELECT_RELATED = (
'ta_publicado', 'ta_publicado',
'ta',) 'ta',)
tipo_nota_crud = Crud( tipo_nota_crud = Crud(TipoNota, 'tipo_nota')
TipoNota, 'tipo_nota', [ tipo_vide_crud = Crud(TipoVide, 'tipo_vide')
tipo_publicacao_crud = Crud(TipoPublicacao, 'tipo_publicacao')
[_('Tipo da Nota'), veiculo_publicacao_crud = Crud(VeiculoPublicacao, 'veiculo_publicacao')
[('sigla', 2), ('nome', 10)], perfil_estr_txt_norm = Crud(PerfilEstruturalTextoArticulado,
[('modelo', 12)]], 'perfil_estrutural')
]) tipo_dispositivo_crud = Crud(TipoDispositivo, 'tipo_dispositivo')
tipo_vide_crud = Crud(
TipoVide, 'tipo_vide', [
[_('Tipo de Vide'),
[('sigla', 2), ('nome', 10)]],
])
tipo_publicacao_crud = Crud(
TipoPublicacao, 'tipo_publicacao', [
[_('Tipo de Publicação'),
[('sigla', 2), ('nome', 10)]],
])
veiculo_publicacao_crud = Crud(
VeiculoPublicacao, 'veiculo_publicacao', [
[_('Veículo de Publicação'),
[('sigla', 2), ('nome', 10)]],
])
perfil_estr_txt_norm = Crud(
PerfilEstruturalTextoArticulado, 'perfil_estrutural', [
[_('Perfil Estrutural de Textos Articulados'),
[('sigla', 2), ('nome', 10)]],
])
tipo_dispositivo_crud = Crud(
TipoDispositivo, 'tipo_dispositivo', [
[_('Dados Básicos'),
[('nome', 8), ('class_css', 4)]],
[_('Configurações para Edição do Rótulo'),
[('rotulo_prefixo_texto', 3),
('rotulo_sufixo_texto', 3),
('rotulo_ordinal', 3),
('contagem_continua', 3)],
],
[_('Configurações para Renderização de Rótulo e Texto'),
[('rotulo_prefixo_html', 6),
('rotulo_sufixo_html', 6), ],
[('texto_prefixo_html', 4),
('dispositivo_de_articulacao', 4),
('texto_sufixo_html', 4)],
],
[_('Configurações para Nota Automática'),
[('nota_automatica_prefixo_html', 6),
('nota_automatica_sufixo_html', 6),
],
],
[_('Configurações para Variações Numéricas'),
[('formato_variacao0', 12)],
[('rotulo_separador_variacao01', 5), ('formato_variacao1', 7), ],
[('rotulo_separador_variacao12', 5), ('formato_variacao2', 7), ],
[('rotulo_separador_variacao23', 5), ('formato_variacao3', 7), ],
[('rotulo_separador_variacao34', 5), ('formato_variacao4', 7), ],
[('rotulo_separador_variacao45', 5), ('formato_variacao5', 7), ],
],
])
class IntegracaoTaView(TemplateView): class IntegracaoTaView(TemplateView):

21
crispy_layout_mixin.py

@ -1,4 +1,5 @@
from math import ceil from math import ceil
from os.path import dirname, join
import rtyaml import rtyaml
from crispy_forms.bootstrap import FormActions from crispy_forms.bootstrap import FormActions
@ -61,17 +62,23 @@ def get_field_display(obj, fieldname):
class CrispyLayoutFormMixin(object): class CrispyLayoutFormMixin(object):
def get_layout(self):
filename = join(
dirname(self.model._meta.app_config.models_module.__file__),
'layouts.yaml')
return read_layout_from_yaml(filename, self.model.__name__)
@property @property
def fields(self): def fields(self):
'''Returns all fields in the layout''' '''Returns all fields in the layout'''
return [fieldname for legend_rows in self.layout return [fieldname for legend_rows in self.get_layout()
for row in legend_rows[1:] for row in legend_rows[1:]
for fieldname, span in row] for fieldname, span in row]
def get_form(self, form_class=None): def get_form(self, form_class=None):
form = super(CrispyLayoutFormMixin, self).get_form(form_class) form = super(CrispyLayoutFormMixin, self).get_form(form_class)
form.helper = FormHelper() form.helper = FormHelper()
form.helper.layout = SaplFormLayout(*self.layout) form.helper.layout = SaplFormLayout(*self.get_layout())
return form return form
@property @property
@ -81,7 +88,7 @@ class CrispyLayoutFormMixin(object):
This base implementation returns the field names This base implementation returns the field names
in the first fieldset of the layout. in the first fieldset of the layout.
''' '''
rows = self.layout[0][1:] rows = self.get_layout()[0][1:]
return [fieldname for row in rows for fieldname, __ in row] return [fieldname for row in rows for fieldname, __ in row]
def get_column(self, fieldname, span): def get_column(self, fieldname, span):
@ -101,17 +108,17 @@ class CrispyLayoutFormMixin(object):
'rows': [[self.get_column(fieldname, span) 'rows': [[self.get_column(fieldname, span)
for fieldname, span in row] for fieldname, span in row]
for row in rows] for row in rows]
} for legend, *rows in self.layout] } for legend, *rows in self.get_layout()]
# TODO cache this
def read_yaml_from_file(filename): def read_yaml_from_file(filename):
# TODO cache this at application level
with open(filename, 'r') as yamlfile: with open(filename, 'r') as yamlfile:
return rtyaml.load(yamlfile) return rtyaml.load(yamlfile)
def read_layout_from_yaml(filename, key): def read_layout_from_yaml(filename, key):
# TODO cache this # TODO cache this at application level
yaml = read_yaml_from_file(filename) yaml = read_yaml_from_file(filename)
base = yaml[key] base = yaml[key]
@ -127,5 +134,5 @@ def read_layout_from_yaml(filename, key):
remaining = remaining - span remaining = remaining - span
return list(map(tuple, namespans)) return list(map(tuple, namespans))
return [(legend, [line_to_namespans(l) for l in lines]) return [[legend] + [line_to_namespans(l) for l in lines]
for legend, lines in base.items()] for legend, lines in base.items()]

3
crud.py

@ -179,7 +179,7 @@ class CrudDeleteMixin(FormMessagesMixin):
class Crud(object): class Crud(object):
def __init__(self, model, help_path, layout, def __init__(self, model, help_path,
base_mixin=BaseCrudMixin, base_mixin=BaseCrudMixin,
list_mixin=CrudListMixin, list_mixin=CrudListMixin,
create_mixin=CrudCreateMixin, create_mixin=CrudCreateMixin,
@ -191,7 +191,6 @@ class Crud(object):
pass pass
CrudMixin.model = model CrudMixin.model = model
CrudMixin.help_path = help_path CrudMixin.help_path = help_path
CrudMixin.layout = layout
class CrudListView(CrudMixin, list_mixin, ListView): class CrudListView(CrudMixin, list_mixin, ListView):
pass pass

8
crud_tests/test_flux.py

@ -79,7 +79,9 @@ def test_get_field_display():
def test_layout_fieldnames(_layout, result): def test_layout_fieldnames(_layout, result):
class StubMixin(CrispyLayoutFormMixin): class StubMixin(CrispyLayoutFormMixin):
layout = _layout
def get_layout(self):
return _layout
view = StubMixin() view = StubMixin()
assert view.list_field_names == result assert view.list_field_names == result
@ -93,7 +95,9 @@ def test_layout_detail_fieldsets(monkeypatch):
is_cold=False) is_cold=False)
class StubMixin(CrispyLayoutFormMixin): class StubMixin(CrispyLayoutFormMixin):
layout = [['Basic Data',
def get_layout(self):
return [['Basic Data',
[('name', 9), ('continent', 3)], [('name', 9), ('continent', 3)],
[('population', 6), ('is_cold', 6)] [('population', 6), ('is_cold', 6)]
], ],

9
crud_tests/views.py

@ -8,11 +8,6 @@ class CountryCrudListMixin(CrudListMixin):
country_crud = Crud( country_crud = Crud(
Country, 'help_path', [ Country,
['Basic Data', 'help_path',
[('name', 9), ('continent', 3)],
[('population', 6), ('is_cold', 6)]
],
['More Details', [('description', 12)]],
],
list_mixin=CountryCrudListMixin) list_mixin=CountryCrudListMixin)

23
lexml/views.py

@ -4,24 +4,5 @@ from crud import Crud
from .models import LexmlProvedor, LexmlPublicador from .models import LexmlProvedor, LexmlPublicador
lexml_provedor_crud = Crud( lexml_provedor_crud = Crud(LexmlProvedor, 'lexml_provedor')
LexmlProvedor, 'lexml_provedor', [ lexml_publicador_crud = Crud(LexmlPublicador, 'lexml_publicador')
[_('Provedor Lexml'),
[('id_provedor', 2),
('nome', 10)],
[('id_responsavel', 2), ('nome_responsavel', 5),
('email_responsavel', 5)],
[('xml', 12)]],
])
lexml_publicador_crud = Crud(
LexmlPublicador, 'lexml_publicador', [
[_('Publicador Lexml'),
[('id_publicador', 2),
('nome', 5), ('sigla', 5)],
[('id_responsavel', 2), ('nome_responsavel', 5),
('email_responsavel', 5)]],
])

220
materia/views.py

@ -37,199 +37,25 @@ from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria,
TipoFimRelatoria, TipoMateriaLegislativa, TipoProposicao, TipoFimRelatoria, TipoMateriaLegislativa, TipoProposicao,
Tramitacao, UnidadeTramitacao) Tramitacao, UnidadeTramitacao)
origem_crud = Crud( origem_crud = Crud(Origem, 'origem')
Origem, 'origem', [ tipo_materia_crud = Crud(TipoMateriaLegislativa, 'tipo_materia_legislativa')
regime_tramitacao_crud = Crud(RegimeTramitacao, 'regime_tramitacao')
[_('Origem'), tipo_documento_crud = Crud(TipoDocumento, 'tipo_documento')
[('nome', 8), ('sigla', 4)]], tipo_fim_relatoria_crud = Crud(TipoFimRelatoria, 'fim_relatoria')
]) materia_legislativa_crud = Crud(MateriaLegislativa, '')
Anexada_crud = Crud(Anexada, '')
tipo_materia_crud = Crud( tipo_autor_crud = Crud(TipoAutor, 'tipo_autor')
TipoMateriaLegislativa, 'tipo_materia_legislativa', [ autor_crud = Crud(Autor, 'autor')
autoria_crud = Crud(Autoria, '')
[_('Tipo Matéria Legislativa'), documento_acessorio_crud = Crud(DocumentoAcessorio, '')
[('sigla', 4), ('descricao', 8)]], numeracao_crud = Crud(Numeracao, '')
]) orgao_crud = Crud(Orgao, 'orgao')
relatoria_crud = Crud(Relatoria, '')
regime_tramitacao_crud = Crud( tipo_proposicao_crud = Crud(TipoProposicao, 'tipo_proposicao')
RegimeTramitacao, 'regime_tramitacao', [ proposicao_crud = Crud(Proposicao, '')
status_tramitacao_crud = Crud(StatusTramitacao, 'status_tramitacao')
[_('Tipo de Documento'), unidade_tramitacao_crud = Crud(UnidadeTramitacao, 'unidade_tramitacao')
[('descricao', 12)]], tramitacao_crud = Crud(Tramitacao, '')
])
tipo_documento_crud = Crud(
TipoDocumento, 'tipo_documento', [
[_('Regime Tramitação'),
[('descricao', 12)]],
])
tipo_fim_relatoria_crud = Crud(
TipoFimRelatoria, 'fim_relatoria', [
[_('Tipo Fim de Relatoria'),
[('descricao', 12)]],
])
materia_legislativa_crud = Crud(
MateriaLegislativa, '', [
[_('Identificação Básica'),
[('tipo', 4), ('numero', 4), ('ano', 4)],
[('data_apresentacao', 4),
('numero_protocolo', 4),
('tipo_apresentacao', 4)],
[('texto_original', 12)]],
[_('Outras Informações'),
[('apelido', 4), ('dias_prazo', 4), ('polemica', 4)],
[('objeto', 4), ('regime_tramitacao', 4), ('em_tramitacao', 4)],
[('data_fim_prazo', 4),
('data_publicacao', 4),
('complementar', 4)]],
[_('Origem Externa'),
[('tipo_origem_externa', 4),
('numero_origem_externa', 4),
('ano_origem_externa', 4)],
[('local_origem_externa', 6), ('data_origem_externa', 6)]],
[_('Dados Textuais'),
[('ementa', 12)],
[('indexacao', 12)],
[('observacao', 12)]],
])
Anexada_crud = Crud(
Anexada, '', [
[_('Matéria Legislativa'),
[('tip_id_basica_FIXME', 4),
('num_ident_basica_FIXME', 4),
('ano_ident_basica_FIXME', 4)],
[('data_anexacao', 6), ('data_desanexacao', 6)]],
[_('Matéria Anexada'),
[('tip_id_basica_FIXME', 4),
('num_ident_basica_FIXME', 4),
('ano_ident_basica_FIXME', 4)],
[('data_anexacao', 6), ('data_desanexacao', 6)]],
])
tipo_autor_crud = Crud(
TipoAutor, 'tipo_autor', [
[_('Tipo Autor'),
[('descricao', 12)]],
])
autor_crud = Crud(
Autor, 'autor', [
[_('Autor'),
[('tipo', 3), ('nome', 9)],
[('username', 12)]],
])
autoria_crud = Crud(
Autoria, '', [
[_('Autoria'),
[('tip_autor_FIXME', 4),
('nom_autor_FIXME', 4),
('primeiro_autor', 4)]],
])
documento_acessorio_crud = Crud(
DocumentoAcessorio, '', [
[_('Documento Acessório'),
[('tipo', 6), ('nome', 6)],
[('data', 6), ('autor', 6)],
[('nom_arquivo_FIXME', 12)],
[('ementa', 12)],
[('txt_observacao_FIXME', 12)]],
])
numeracao_crud = Crud(
Numeracao, '', [
[_('Numeração'),
[('tipo_materia', 6), ('numero_materia', 6)],
[('ano_materia', 6), ('data_materia', 6)]],
])
orgao_crud = Crud(
Orgao, 'orgao', [
[_('Órgão'),
[('nome', 4),
('sigla', 2),
('telefone', 2),
('endereco', 2),
('unidade_deliberativa', 2)]],
])
relatoria_crud = Crud(
Relatoria, '', [
[_('Relatoria'),
[('data_designacao_relator', 12)],
[('dados_FIXME', 12)],
[('data_destituicao_relator', 6), ('tipo_fim_relatoria', 6)]],
])
tipo_proposicao_crud = Crud(
TipoProposicao, 'tipo_proposicao', [
[_('Tipo Proposição'),
[('descricao', 12)],
[('materia_ou_documento', 6), ('tipo_documento', 6)],
[('modelo', 12)]],
])
proposicao_crud = Crud(
Proposicao, '', [
[_('Proposição'),
[('tipo', 4), ('dat_criacao_FIXME', 4), ('data_recebimento', 4)],
[('descricao_FIXME', 12)],
[('tip_id_basica_FIXME', 4),
('num_ident_basica_FIXME', 4),
('ano_ident_basica_FIXME', 4)],
[('nom_arquivo_FIXME', 6), ('modelo_FIXME', 6)]],
])
status_tramitacao_crud = Crud(
StatusTramitacao, 'status_tramitacao', [
[_('Status Tramitação'),
[('indicador', 3),
('sigla', 2),
('descricao', 7)]],
])
unidade_tramitacao_crud = Crud(
UnidadeTramitacao, 'unidade_tramitacao', [
[_('Unidade Tramitação'),
[('orgao', 12)],
[('comissao', 12)],
[('parlamentar', 12)]],
])
tramitacao_crud = Crud(
Tramitacao, '', [
[_('Tramitação'),
[('cod_ult_tram_dest_FIXME', 6), ('unidade_tramitacao_local', 6)],
[('status', 4), ('turno', 4), ('urgente', 4)],
[('unidade_tramitacao_destino', 4),
('data_encaminhamento', 4),
('data_fim_prazo', 4)],
[('texto', 12)]],
])
class FormularioSimplificadoView(FormMixin, GenericView): class FormularioSimplificadoView(FormMixin, GenericView):
@ -312,8 +138,8 @@ class MateriaAnexadaView(FormMixin, GenericView):
if mat_principal.tipo == mat_anexada.tipo: if mat_principal.tipo == mat_anexada.tipo:
msg = 'A matéria a ser anexada não pode ser do mesmo \ msg = _('A matéria a ser anexada não pode ser do mesmo'
tipo da matéria principal.' ' tipo da matéria principal.')
messages.add_message(request, messages.INFO, msg) messages.add_message(request, messages.INFO, msg)
return self.render_to_response( return self.render_to_response(
{'form': form, {'form': form,
@ -331,8 +157,8 @@ class MateriaAnexadaView(FormMixin, GenericView):
anexada.save() anexada.save()
except ObjectDoesNotExist: except ObjectDoesNotExist:
msg = 'A matéria a ser anexada não existe no cadastro \ msg = _('A matéria a ser anexada não existe no cadastro'
de matérias legislativas.' ' de matérias legislativas.')
messages.add_message(request, messages.INFO, msg) messages.add_message(request, messages.INFO, msg)
return self.render_to_response( return self.render_to_response(
{'form': form, {'form': form,

61
norma/views.py

@ -15,62 +15,11 @@ from .forms import NormaJuridicaForm
from .models import (AssuntoNorma, LegislacaoCitada, NormaJuridica, from .models import (AssuntoNorma, LegislacaoCitada, NormaJuridica,
TipoNormaJuridica) TipoNormaJuridica)
assunto_norma_crud = Crud( assunto_norma_crud = Crud(AssuntoNorma, 'assunto_norma_juridica')
AssuntoNorma, 'assunto_norma_juridica', [ tipo_norma_crud = Crud(TipoNormaJuridica, 'tipo_norma_juridica')
norma_crud = Crud(NormaJuridica, '')
[_('Assunto Norma Jurídica'), norma_temporario_crud = Crud(NormaJuridica, 'normajuridica')
[('assunto', 6), ('descricao', 6)]], legislacao_citada_crud = Crud(LegislacaoCitada, '')
])
tipo_norma_crud = Crud(
TipoNormaJuridica, 'tipo_norma_juridica', [
[_('Tipo Norma Jurídica'),
[('descricao', 4),
('sigla', 4),
('equivalente_lexml', 4)]],
])
norma_crud = Crud(
NormaJuridica, '', [
[_('Identificação Básica'),
[('tipo', 4), ('numero', 4), ('ano', 4)],
[('data', 4), ('esfera_federacao', 4), ('complemento', 4)],
[('tip_id_basica_FIXME', 4),
('num_ident_basica_FIXME', 4),
('ano_ident_basica_FIXME', 4)],
[('data_publicacao', 3),
('veiculo_publicacao', 3),
('pagina_inicio_publicacao', 3),
('pagina_fim_publicacao', 3)],
[('file_FIXME', 6), ('tip_situacao_norma_FIXME', 6)],
[('ementa', 12)],
[('indexacao', 12)],
[('observacao', 12)]],
])
norma_temporario_crud = Crud(
NormaJuridica, 'normajuridica', [
[_('Identificação Básica'),
[('tipo', 5), ('numero', 2), ('ano', 2), ('data', 3)],
[('ementa', 12)]],
])
legislacao_citada_crud = Crud(
LegislacaoCitada, '', [
[_('Legislação Citada'),
[('tip_norma_FIXME', 4),
('num_norma_FIXME', 4),
('ano_norma_FIXME', 4)],
[('disposicoes', 3), ('parte', 3), ('livro', 3), ('titulo', 3)],
[('capitulo', 3), ('secao', 3), ('subsecao', 3), ('artigo', 3)],
[('paragrafo', 3), ('inciso', 3), ('alinea', 3), ('item', 3)]],
])
class NormaIncluirView(FormMixin, GenericView): class NormaIncluirView(FormMixin, GenericView):

8
painel/views.py

@ -14,13 +14,7 @@ from sessao.models import (ExpedienteMateria, OrdemDia, PresencaOrdemDia,
from .models import Cronometro from .models import Cronometro
cronometro_painel_crud = Crud( cronometro_painel_crud = Crud(Cronometro, '')
Cronometro, '', [
[_('Cronometro'),
[('status', 3), ('data_cronometro', 6),
('tipo', 3)]],
])
def controlador_painel(request): def controlador_painel(request):

142
parlamentares/views.py

@ -22,131 +22,19 @@ from .models import (CargoMesa, Coligacao, ComposicaoMesa, Dependente,
Parlamentar, Partido, SessaoLegislativa, SituacaoMilitar, Parlamentar, Partido, SessaoLegislativa, SituacaoMilitar,
TipoAfastamento, TipoDependente) TipoAfastamento, TipoDependente)
cargo_mesa_crud = Crud( cargo_mesa_crud = Crud(CargoMesa, 'cargo_mesa')
CargoMesa, 'cargo_mesa', [ legislatura_crud = Crud(Legislatura, 'tabelas_auxiliares#legislatura')
coligacao_crud = Crud(Coligacao, 'coligacao')
[_('Cargo na Mesa'), partido_crud = Crud(Partido, 'partidos')
[('descricao', 10), dependente_crud = Crud(Dependente, '')
('unico', 2)]], sessao_legislativa_crud = Crud(SessaoLegislativa, 'sessao_legislativa')
]) parlamentar_crud = Crud(Parlamentar, '')
filiacao_crud = Crud(Filiacao, '')
legislatura_crud = Crud( mandato_crud = Crud(Mandato, '')
Legislatura, 'tabelas_auxiliares#legislatura', [ tipo_dependente_crud = Crud(TipoDependente, 'tipo_dependente')
nivel_instrucao_crud = Crud(NivelInstrucao, 'nivel_instrucao')
[_('Legislatura'), tipo_afastamento_crud = Crud(TipoAfastamento, 'tipo_afastamento')
[('data_inicio', 4), ('data_fim', 4), ('data_eleicao', 4)]], tipo_militar_crud = Crud(SituacaoMilitar, 'tipo_situa_militar')
])
coligacao_crud = Crud(
Coligacao, 'coligacao', [
[_('Coligação'),
[('nome', 5),
('legislatura', 5),
('numero_votos', 2)]],
])
partido_crud = Crud(
Partido, 'partidos', [
[_('Partido Político'),
[('nome', 6),
('sigla', 2),
('data_criacao', 2),
('data_extincao', 2)]],
])
dependente_crud = Crud(
Dependente, '', [
[_('Dependentes'),
[('nome', 12)],
[('tipo', 4), ('sexo', 4), ('data_nascimento', 4)],
[('cpf', 4), ('rg', 4), ('titulo_eleitor', 4)]],
])
sessao_legislativa_crud = Crud(
SessaoLegislativa, 'sessao_legislativa', [
[_('Sessão Legislativa'),
[('numero', 4),
('tipo', 4),
('legislatura', 4),
('data_inicio', 6),
('data_fim', 6),
('data_inicio_intervalo', 6),
('data_fim_intervalo', 6)]],
])
parlamentar_crud = Crud(
Parlamentar, '', [
[_('Cadastro do Parlamentar'),
[('nome_parlamentar', 8), ('ativo', 4)],
[('nome_completo', 12)],
[('nivel_instrucao', 4), ('sexo', 4), ('data_nascimento', 4)],
[('cpf', 4), ('rg', 4), ('titulo_eleitor', 4)],
[('situacao_militar', 6), ('profissao', 6)],
[('endereco_web', 12)],
[('email', 12)],
[('numero_gab_parlamentar', 4), ('telefone', 4), ('fax', 4)],
[('endereco_residencia', 6), ('cep_residencia', 6)],
[('municipio_residencia', 12)],
[('telefone_residencia', 6), ('fax_residencia', 6)],
[('locais_atuacao', 12)],
[('fotografia', 12)],
[('biografia', 12)]],
])
filiacao_crud = Crud(
Filiacao, '', [
[_('Filiações Partidárias '),
[('partido', 4), ('data', 4), ('data_desfiliacao', 4)]],
])
mandato_crud = Crud(
Mandato, '', [
[_('Mandato'),
[('legislatura', 4), ('coligacao', 4), ('votos_recebidos', 4)],
[('ind_titular_FIXME', 3),
('dat_inicio_mandato_FIXME', 3),
('data_fim_mandato', 3),
('data_expedicao_diploma', 3)],
[('observacao', 12)]],
])
tipo_dependente_crud = Crud(
TipoDependente, 'tipo_dependente', [
[_('Tipo de Dependente'),
[('descricao', 12)]],
])
nivel_instrucao_crud = Crud(
NivelInstrucao, 'nivel_instrucao', [
[_('Nível Instrução'),
[('descricao', 12)]],
])
tipo_afastamento_crud = Crud(
TipoAfastamento, 'tipo_afastamento', [
[_('Tipo de Afastamento'),
[('descricao', 5), ('dispositivo', 5), ('afastamento', 2)]],
])
tipo_militar_crud = Crud(
SituacaoMilitar, 'tipo_situa_militar', [
[_('Tipo Situação Militar'),
[('descricao', 12)]],
])
class ParlamentaresView(GenericView): class ParlamentaresView(GenericView):
@ -156,8 +44,8 @@ class ParlamentaresView(GenericView):
form = ParlamentaresListForm() form = ParlamentaresListForm()
if not Legislatura.objects.all(): if not Legislatura.objects.all():
mensagem = "Cadastre alguma Legislatura antes\ mensagem = _('Cadastre alguma Legislatura antes'
de cadastrar algum Parlamentar" ' de cadastrar algum Parlamentar')
messages.add_message(request, messages.INFO, mensagem) messages.add_message(request, messages.INFO, mensagem)
return self.render_to_response( return self.render_to_response(
{'legislaturas': [], {'legislaturas': [],

78
protocoloadm/views.py

@ -27,77 +27,17 @@ from .models import (Autor, DocumentoAcessorioAdministrativo,
StatusTramitacaoAdministrativo, StatusTramitacaoAdministrativo,
TipoDocumentoAdministrativo, TramitacaoAdministrativo) TipoDocumentoAdministrativo, TramitacaoAdministrativo)
tipo_documento_administrativo_crud = Crud( tipo_documento_administrativo_crud = Crud(TipoDocumentoAdministrativo, '')
TipoDocumentoAdministrativo, '', [ documento_administrativo_crud = Crud(DocumentoAdministrativo, '')
[_('Tipo Documento Administrativo'),
[('sigla', 4), ('descricao', 8)]],
])
documento_administrativo_crud = Crud(
DocumentoAdministrativo, '', [
[_('Indentificação Básica'),
[('tipo', 4), ('numero', 4), ('ano', 4)],
[('data', 6), ('numero_protocolo', 6)],
[('assunto', 12)],
[('interessado', 6), ('tramitacao', 6)],
[('texto_integral', 12)]],
[_('Outras Informações'),
[('dias_prazo', 6), ('data_fim_prazo', 6)],
[('observacao', 12)]],
])
documento_acessorio_administrativo_crud = Crud( documento_acessorio_administrativo_crud = Crud(
DocumentoAcessorioAdministrativo, '', [ DocumentoAcessorioAdministrativo, '')
[_('Documento Acessório'),
[('tipo', 4), ('nome', 4), ('data', 4)],
[('autor', 12)],
[('arquivo', 12)],
[('assunto', 12)]],
])
status_tramitacao_administrativo_crud = Crud( status_tramitacao_administrativo_crud = Crud(
StatusTramitacaoAdministrativo, '', [ StatusTramitacaoAdministrativo, '')
tramitacao_administrativo_crud = Crud(TramitacaoAdministrativo, '')
[_('Status Tramitação Administrativo'), protocolo_documento_crud = Crud(Protocolo, '')
[('indicador', 3),
('sigla', 2), # FIXME precisa de uma chave diferente para o layout
('descricao', 7)]], protocolo_materia_crud = Crud(Protocolo, '')
])
tramitacao_administrativo_crud = Crud(
TramitacaoAdministrativo, '', [
[_('Tramitação'),
[('data_tramitacao', 4), ('unidade_tramitacao_local', 8)],
[('status', 4), ('unidade_tramitacao_destino', 8)],
[('data_encaminhamento', 6), ('data_fim_prazo', 6)],
[('texto', 12)]],
])
protocolo_documento_crud = Crud(
Protocolo, '', [
[_('Indentificação Documento'),
[('tipo_protocolo', 12)],
[('tipo_documento', 6), ('numero_paginas', 6)],
[('assunto_ementa', 12)],
[('interessado', 12)],
[('observacao', 12)]],
])
protocolo_materia_crud = Crud(
Protocolo, '', [
[_('Indentificação da Matéria'),
[('tipo_materia', 6), ('numero_paginas', 6)],
[('assunto_ementa', 12)],
[('autor', 12)],
[('observacao', 12)]],
])
class ProtocoloListView(FormMixin, ListView): class ProtocoloListView(FormMixin, ListView):

80
sessao/views.py

@ -27,78 +27,14 @@ from .models import (CargoMesa, ExpedienteMateria, ExpedienteSessao,
TipoExpediente, TipoResultadoVotacao, TipoSessaoPlenaria, TipoExpediente, TipoResultadoVotacao, TipoSessaoPlenaria,
VotoParlamentar) VotoParlamentar)
tipo_sessao_crud = Crud( tipo_sessao_crud = Crud(TipoSessaoPlenaria, 'tipo_sessao_plenaria')
TipoSessaoPlenaria, 'tipo_sessao_plenaria', [ sessao_crud = Crud(SessaoPlenaria, '')
expediente_materia_crud = Crud(ExpedienteMateria, '')
[_('Tipo de Sessão Plenária'), ordem_dia_crud = Crud(OrdemDia, '')
[('nome', 6), ('quorum_minimo', 6)]],
])
sessao_crud = Crud(
SessaoPlenaria, '', [
[_('Dados Básicos'),
[('numero', 1),
('tipo', 3),
('legislatura', 4),
('sessao_legislativa', 4)],
[('data_inicio', 5), ('hora_inicio', 5), ('iniciada', 2)],
[('data_fim', 5), ('hora_fim', 5), ('finalizada', 2)],
[('upload_pauta', 6), ('upload_ata', 6)],
[('url_audio', 6), ('url_video', 6)]],
])
expediente_materia_crud = Crud(
ExpedienteMateria, '', [
[_('Cadastro de Matérias do Expediente'),
[('data_ordem', 4), ('tip_sessao_FIXME', 4), ('numero_ordem', 4)],
[('tip_id_basica_FIXME', 4),
('num_ident_basica_FIXME', 4),
('ano_ident_basica_FIXME', 4)],
[('tipo_votacao', 12)],
[('observacao', 12)]],
])
ordem_dia_crud = Crud(
OrdemDia, '', [
[_('Cadastro de Matérias da Ordem do Dia'),
[('data_ordem', 4), ('tip_sessao_FIXME', 4), ('numero_ordem', 4)],
[('tip_id_basica_FIXME', 4),
('num_ident_basica_FIXME', 4),
('ano_ident_basica_FIXME', 4)],
[('tipo_votacao', 12)],
[('observacao', 12)]],
])
tipo_resultado_votacao_crud = Crud( tipo_resultado_votacao_crud = Crud(
TipoResultadoVotacao, 'tipo_resultado_votacao', [ TipoResultadoVotacao, 'tipo_resultado_votacao')
tipo_expediente_crud = Crud(TipoExpediente, 'tipo_expediente')
[_('Tipo de Resultado da Votação'), registro_votacao_crud = Crud(RegistroVotacao, '')
[('nome', 12)]],
])
tipo_expediente_crud = Crud(
TipoExpediente, 'tipo_expediente', [
[_('Tipo de Expediente'),
[('nome', 12)]],
])
registro_votacao_crud = Crud(
RegistroVotacao, '', [
[_('Votação Simbólica'),
[('numero_votos_sim', 3),
('numero_votos_nao', 3),
('numero_abstencoes', 3),
('nao_votou_FIXME', 3)],
[('votacao_branco_FIXME', 6),
('ind_votacao_presidente_FIXME', 6)],
[('tipo_resultado_votacao', 12)],
[('observacao', 12)]],
])
class PresencaView(sessao_crud.CrudDetailView): class PresencaView(sessao_crud.CrudDetailView):
@ -646,7 +582,7 @@ class ExpedienteOrdemDiaView(sessao_crud.CrudDetailView):
return self.form_valid(form) return self.form_valid(form)
else: else:
context.update( context.update(
{'error_message': "Não foi possível salvar formulário!"}) {'error_message': _("Não foi possível salvar formulário!")})
return self.form_invalid(form) return self.form_invalid(form)
def get_success_url(self): def get_success_url(self):

8
test_crispy_layout_mixin.py

@ -16,14 +16,14 @@ ModelName:
file.write(contents) file.write(contents)
expected = [ expected = [
('Cool Legend', [ ['Cool Legend',
[('name', 9), ('place', 2), ('tiny', 1)], [('name', 9), ('place', 2), ('tiny', 1)],
[('field', 10), ('nature', 2)], [('field', 10), ('nature', 2)],
[('kind', 1), ('date', 3), ('unit', 5), ('status', 3)], [('kind', 1), ('date', 3), ('unit', 5), ('status', 3)],
]), ],
('More data', [ ['More data',
[('equalA', 4), ('equalB', 4), ('equalC', 4)], [('equalA', 4), ('equalB', 4), ('equalC', 4)],
[('highlander', 12)], [('highlander', 12)],
]), ],
] ]
assert read_layout_from_yaml(file.strpath, 'ModelName') == expected assert read_layout_from_yaml(file.strpath, 'ModelName') == expected

Loading…
Cancel
Save