diff --git a/materia/urls.py b/materia/urls.py index 238313581..c455d0f37 100644 --- a/materia/urls.py +++ b/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') ] diff --git a/materia/views.py b/materia/views.py index b945228fe..db2588c49 100644 --- a/materia/views.py +++ b/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') diff --git a/materia/views.py.orig b/materia/views.py.orig deleted file mode 100644 index 0c7e0727d..000000000 --- a/materia/views.py.orig +++ /dev/null @@ -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)]], -) diff --git a/templates/materia/formulario_cadastro.html b/templates/materia/formulario_cadastro.html new file mode 100644 index 000000000..832c5f74c --- /dev/null +++ b/templates/materia/formulario_cadastro.html @@ -0,0 +1,25 @@ +{% extends "protocoloadm/protocoloadm_detail.html" %} +{% load i18n %} +{% load crispy_forms_tags %} + +{% block detail_content %} + +
+{% endblock %} + +{% block foot_js %} + +{% endblock %} \ No newline at end of file