Browse Source

Add formulario cadastro completo to Materia

pull/11/merge
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
21af55742f
  1. 12
      materia/urls.py
  2. 171
      materia/views.py
  3. 243
      materia/views.py.orig
  4. 25
      templates/materia/formulario_cadastro.html

12
materia/urls.py

@ -1,7 +1,6 @@
from django.conf.urls import include, url
from materia.views import (autor_crud, materia_legislativa_crud, orgao_crud,
FormularioSimplificadoView,
from materia.views import (FormularioCadastroView, FormularioSimplificadoView,
autor_crud, materia_legislativa_crud, orgao_crud,
origem_crud, regime_tramitacao_crud,
status_tramitacao_crud, tipo_autor_crud,
tipo_documento_crud, tipo_fim_relatoria_crud,
@ -27,5 +26,10 @@ urlpatterns = [
include(status_tramitacao_crud.urls)),
url(r'^sistema/materia/orgao/', include(orgao_crud.urls)),
url(r'^materia/', include(materia_legislativa_crud.urls)),
url(r'^materia/formulario-simplificado', FormularioSimplificadoView.as_view(), name='formulario_simplificado')
url(r'^materia/formulario-simplificado',
FormularioSimplificadoView.as_view(),
name='formulario_simplificado'),
url(r'^materia/formulario-cadastro',
FormularioCadastroView.as_view(),
name='formulario_cadastro')
]

171
materia/views.py

@ -1,10 +1,14 @@
from datetime import date, datetime
from django.utils.translation import ugettext_lazy as _
from sapl.crud import build_crud
from crispy_forms.helper import FormHelper
from crispy_forms.layout import ButtonHolder, Fieldset, Layout, Submit
from django import forms
from django.core.urlresolvers import reverse
from django.forms import ModelForm
from django.utils.translation import ugettext_lazy as _
from django.views.generic.edit import FormMixin
from sapl.crud import build_crud
from vanilla import GenericView
from .models import (Anexada, Autor, Autoria, DocumentoAcessorio,
MateriaLegislativa, Numeracao, Orgao, Origem, Proposicao,
@ -12,8 +16,6 @@ from .models import (Anexada, Autor, Autoria, DocumentoAcessorio,
TipoDocumento, TipoFimRelatoria, TipoMateriaLegislativa,
TipoProposicao, Tramitacao, UnidadeTramitacao)
from vanilla import GenericView
origem_crud = build_crud(
Origem, 'origem', [
@ -208,19 +210,27 @@ tramitacao_crud = build_crud(
[('texto', 12)]],
])
def get_tipos_materia():
return [('', 'Selecione')] \
+ [(t.id, t.sigla + ' - ' + t.descricao)
for t in TipoMateriaLegislativa.objects.all()]
def get_range_anos():
return [('', 'Selecione')] \
+ [(year, year) for year in range(date.today().year, 1960, -1)]
def get_regimes_tramitacao():
return [('1', 'Normal'),
('3', 'Urgência'),
('4', 'Urgência Especial')]
('4', 'Urgência Especial')]
def get_local_origem():
return [('E', 'Poder Executivo'),
('L', 'Poder Legislativo')]
class HorizontalRadioRenderer(forms.RadioSelect.renderer):
@ -228,6 +238,7 @@ class HorizontalRadioRenderer(forms.RadioSelect.renderer):
def render(self):
return mark_safe(u' '.join([u'%s ' % w for w in self]))
class FormularioSimplificadoForm(forms.Form):
tipo_materia = forms.ChoiceField(required=True,
@ -240,50 +251,152 @@ class FormularioSimplificadoForm(forms.Form):
label='Núm. Matéria', required=True)
ano_materia = forms.ChoiceField(required=True,
label='Ano',
choices=get_range_anos(),
widget=forms.Select(
attrs={'class': 'selector'}))
label='Ano',
choices=get_range_anos(),
widget=forms.Select(
attrs={'class': 'selector'}))
data_materia = forms.DateField(label='Data Apresentação',
required=True,
widget=forms.TextInput(
attrs={'class': 'dateinput'}))
required=True,
widget=forms.TextInput(
attrs={'class': 'dateinput'}))
numero_protocolo = forms.CharField(
label='Número de Protocolo', required=True)
regime_tramitacao = forms.ChoiceField(required=False,
label='Regime de Tramitação',
choices=get_regimes_tramitacao(),
widget=forms.Select(
attrs={'class': 'selector'}))
label='Regime de Tramitação',
choices=get_regimes_tramitacao(),
widget=forms.Select(
attrs={'class': 'selector'}))
em_tramitacao = forms.TypedChoiceField(
coerce=lambda x: x == 'Sim',
choices=((True, 'Sim'), (False, 'Não')),
widget=forms.RadioSelect
)
coerce=lambda x: x == 'Sim',
choices=((True, 'Sim'), (False, 'Não')),
widget=forms.RadioSelect
)
ementa = forms.CharField(label='Ementa', required=True, widget=forms.Textarea)
ementa = forms.CharField(
label='Ementa', required=True, widget=forms.Textarea)
texto_original = forms.ChoiceField(required=False,
label='Regime de Tramitação',
choices=(('1', 'Arquivo'), ('2', 'Proposição')),
widget=forms.RadioSelect)
label='Regime de Tramitação',
choices=(
('1', 'Arquivo'),
('2', 'Proposição')),
widget=forms.RadioSelect)
arquivo = forms.FileField(required=False, label='Arquivo')
arquivo = forms.FileField(required=False, label='Arquivo')
proposicao = forms.CharField(required=False, label='Proposição',
widget=forms.TextInput(attrs={'disabled':'True'}))
widget=forms.TextInput(
attrs={'disabled': 'True'}))
# form.fields['otherFields'].widget.attrs['enabled'] = True
class FormularioCadastroForm(ModelForm):
class Meta:
model = MateriaLegislativa
fields = ['tipo',
'numero',
'ano',
'data_apresentacao',
'numero_protocolo',
'tipo_apresentacao',
'texto_original',
'apelido',
'dias_prazo',
'polemica',
'objeto',
'regime_tramitacao',
'em_tramitacao',
'data_fim_prazo',
'data_publicacao',
'complementar',
'tipo_origem_externa',
'numero_origem_externa',
'ano_origem_externa',
'local_origem_externa',
'data_origem_externa',
'ementa',
'indexacao',
'observacao']
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.layout = Layout(
Fieldset(
'Formulário de Cadastro',
Fieldset(
'Identificação Básica',
'tipo',
'numero',
'ano',
'data_apresentacao',
'numero_protocolo',
'tipo_apresentacao',
'texto_original'
),
Fieldset(
'Outras Informações',
'apelido',
'dias_prazo',
'polemica',
'objeto',
'regime_tramitacao',
'em_tramitacao',
'data_fim_prazo',
'data_publicacao',
'complementar'
),
Fieldset(
'Origem Externa',
'tipo_origem_externa',
'numero_origem_externa',
'ano_origem_externa',
'local_origem_externa',
'data_origem_externa'
),
Fieldset(
'Dados Textuais',
'ementa',
'indexacao',
'observacao'
),
ButtonHolder(
Submit('submit', 'Salvar',
css_class='button primary')
)
)
)
super(FormularioCadastroForm, self).__init__(*args, **kwargs)
class FormularioSimplificadoView(FormMixin, GenericView):
template_name = "materia/formulario_simplificado.html"
def get(self, request, *args, **kwargs):
form = FormularioSimplificadoForm()
return self.render_to_response({'form': form})
return self.render_to_response({'form': form})
class FormularioCadastroView(FormMixin, GenericView):
template_name = "materia/formulario_cadastro.html"
def get(self, request, *args, **kwargs):
form = FormularioCadastroForm()
return self.render_to_response({'form': form})
def post(self, request, *args, **kwargs):
form = FormularioCadastroForm(request.POST)
if form.is_valid():
form.save()
return self.form_valid(form)
else:
return self.form_invalid(form)
def get_success_url(self):
return reverse('formulario_cadastro')

243
materia/views.py.orig

@ -1,243 +0,0 @@
from django.utils.translation import ugettext_lazy as _
from sapl.crud import build_crud
from .models import (Anexada, Autor, Autoria, DocumentoAcessorio,
MateriaLegislativa, Numeracao, Orgao, Origem, Proposicao,
RegimeTramitacao, Relatoria, StatusTramitacao, TipoAutor,
TipoDocumento, TipoFimRelatoria, TipoMateriaLegislativa,
TipoProposicao, Tramitacao, UnidadeTramitacao)
origem_crud = build_crud(
<<<<<<< Updated upstream
Origem, '',
=======
Origem, 'origem',
>>>>>>> Stashed changes
[_('Origem'),
[('nome', 8), ('sigla', 4)]],
)
tipo_materia_crud = build_crud(
<<<<<<< Updated upstream
TipoMateriaLegislativa, '',
=======
TipoMateriaLegislativa, 'tipo_materia_legislativa',
>>>>>>> Stashed changes
[_('Tipo Matéria Legislativa'),
[('sigla', 4), ('descricao', 8)]],
)
regime_tramitacao_crud = build_crud(
<<<<<<< Updated upstream
RegimeTramitacao, '',
=======
RegimeTramitacao, 'regime_tramitacao',
>>>>>>> Stashed changes
[_('Tipo de Documento'),
[('descricao', 12)]],
)
tipo_documento_crud = build_crud(
<<<<<<< Updated upstream
TipoDocumento, '',
=======
TipoDocumento, 'tipo_documento',
>>>>>>> Stashed changes
[_('Regime Tramitação'),
[('descricao', 12)]],
)
tipo_fim_relatoria_crud = build_crud(
<<<<<<< Updated upstream
TipoFimRelatoria, '',
=======
TipoFimRelatoria, 'fim_relatoria',
>>>>>>> Stashed changes
[_('Tipo Fim de Relatoria'),
[('descricao', 12)]],
)
materia_legislativa_crud = build_crud(
MateriaLegislativa, '',
[_('Identificação Básica'),
[('tipo', 4), ('numero', 4), ('ano', 4)],
[('data_apresentacao', 4),
('num_protocolo_spdo_FIXME', 4),
('tipo_apresentacao', 4)],
[('nom_arquivo_FIXME', 6), ('modelo_FIXME', 6)]],
[_('Proposição Eletrônica')],
[_('Outras Informações'),
[('apelido', 4), ('dias_prazo', 4), ('polemica', 4)],
[('objeto', 4), ('regime_tramitacao', 4), ('em_tramitacao', 4)],
[('data_fim_prazo', 3),
('data_publicacao', 3),
('complementar', 3),
('txt_cep_FIXME', 3)]],
[_('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 = build_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 = build_crud(
<<<<<<< Updated upstream
TipoAutor, '',
=======
TipoAutor, 'tipo_autor',
>>>>>>> Stashed changes
[_('Tipo Autor'),
[('descricao', 12)]],
)
autor_crud = build_crud(
<<<<<<< Updated upstream
Autor, '',
=======
Autor, 'autor',
>>>>>>> Stashed changes
[_('Autor'),
[('tipo', 3), ('nome', 9)],
[('username', 12)]],
)
autoria_crud = build_crud(
Autoria, '',
[_('Autoria'),
[('tip_autor_FIXME', 4),
('nom_autor_FIXME', 4),
('primeiro_autor', 4)]],
)
documento_acessorio_crud = build_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 = build_crud(
Numeracao, '',
[_('Numeração'),
[('tipo_materia', 6), ('numero_materia', 6)],
[('ano_materia', 6), ('data_materia', 6)]],
)
orgao_crud = build_crud(
Orgao, '',
[_('Órgão'),
[('nome', 4),
('sigla', 2),
('telefone', 2),
('endereco', 2),
('unidade_deliberativa', 2)]],
)
relatoria_crud = build_crud(
Relatoria, '',
[_('Relatoria'),
[('data_designacao_relator', 12)],
[('dados_FIXME', 12)],
[('data_destituicao_relator', 6), ('tipo_fim_relatoria', 6)]],
)
tipo_proposicao_crud = build_crud(
<<<<<<< Updated upstream
TipoProposicao, '',
=======
TipoProposicao, 'tipo_proposicao',
>>>>>>> Stashed changes
[_('Tipo Proposição'),
[('descricao', 12)],
[('materia_ou_documento', 6), ('tipo_documento', 6)],
[('modelo', 12)]],
)
proposicao_crud = build_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 = build_crud(
StatusTramitacao, '',
[_('Status Tramitação'),
[('indicador', 3),
('sigla', 2),
('descricao', 7)]],
)
unidade_tramitacao_crud = build_crud(
<<<<<<< Updated upstream
UnidadeTramitacao, '',
=======
UnidadeTramitacao, 'unidade_tramitacao',
>>>>>>> Stashed changes
[_('Unidade Tramitação'),
[('orgao', 12)],
[('comissao', 12)],
[('parlamentar', 12)]],
)
tramitacao_crud = build_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)]],
)

25
templates/materia/formulario_cadastro.html

@ -0,0 +1,25 @@
{% extends "protocoloadm/protocoloadm_detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block detail_content %}
<form method="POST">
{% csrf_token %}
{% crispy form %}
</form>
{% endblock %}
{% block foot_js %}
<script type="text/javascript">
$(function () {
$('.dateinput').fdatepicker({
// TODO localize
format: 'dd/mm/yyyy',
language: 'pt',
endDate: '31/12/2100',
todayBtn: true
});
});
</script>
{% endblock %}
Loading…
Cancel
Save