|
@ -1,9 +1,9 @@ |
|
|
from crispy_forms.helper import FormHelper |
|
|
from crispy_forms.helper import FormHelper |
|
|
from crispy_forms.layout import Column, Fieldset, Layout, Submit |
|
|
from crispy_forms.layout import Column, Fieldset, Layout, Submit, Button, HTML |
|
|
from django import forms |
|
|
from django import forms |
|
|
from django.forms import ModelForm |
|
|
from django.forms import ModelForm |
|
|
from django.utils.translation import ugettext_lazy as _ |
|
|
from django.utils.translation import ugettext_lazy as _ |
|
|
|
|
|
import sapl |
|
|
import crispy_layout_mixin |
|
|
import crispy_layout_mixin |
|
|
from crispy_layout_mixin import form_actions |
|
|
from crispy_layout_mixin import form_actions |
|
|
from norma.models import LegislacaoCitada, TipoNormaJuridica |
|
|
from norma.models import LegislacaoCitada, TipoNormaJuridica |
|
@ -15,14 +15,16 @@ from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria, |
|
|
StatusTramitacao, TipoAutor, TipoMateriaLegislativa, |
|
|
StatusTramitacao, TipoAutor, TipoMateriaLegislativa, |
|
|
Tramitacao, UnidadeTramitacao) |
|
|
Tramitacao, UnidadeTramitacao) |
|
|
|
|
|
|
|
|
EM_TRAMITACAO = [('', _('Tanto Faz')), |
|
|
|
|
|
(True, 'Sim'), |
|
|
|
|
|
(False, 'Não')] |
|
|
|
|
|
|
|
|
|
|
|
ORDENACAO_MATERIAIS = [(1, 'Crescente'), |
|
|
ORDENACAO_MATERIAIS = [(1, 'Crescente'), |
|
|
(2, 'Decrescente')] |
|
|
(2, 'Decrescente')] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def em_tramitacao(): |
|
|
|
|
|
return [('', 'Tanto Faz'), |
|
|
|
|
|
(True, 'Sim'), |
|
|
|
|
|
(False, 'Não')] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ProposicaoForm(ModelForm): |
|
|
class ProposicaoForm(ModelForm): |
|
|
|
|
|
|
|
|
tipo_materia = forms.ModelChoiceField( |
|
|
tipo_materia = forms.ModelChoiceField( |
|
@ -545,57 +547,12 @@ class AutoriaForm(ModelForm): |
|
|
*args, **kwargs) |
|
|
*args, **kwargs) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MateriaLegislativaPesquisaForm(forms.Form): |
|
|
class MateriaLegislativaPesquisaForm(ModelForm): |
|
|
|
|
|
|
|
|
autor = forms.ModelChoiceField( |
|
|
|
|
|
label='Autor', |
|
|
|
|
|
required=False, |
|
|
|
|
|
queryset=Autor.objects.all().order_by('tipo'), |
|
|
|
|
|
empty_label='Selecione', |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
# relatores são os parlamentares ativos? |
|
|
|
|
|
relator = forms.ModelChoiceField( |
|
|
|
|
|
label='Relator', |
|
|
|
|
|
required=False, |
|
|
|
|
|
queryset=Parlamentar.objects.all().order_by('nome_parlamentar'), |
|
|
|
|
|
empty_label='Selecione', |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
tipo = forms.ModelChoiceField( |
|
|
|
|
|
label=_('Tipo de Matéria'), |
|
|
|
|
|
required=False, |
|
|
|
|
|
queryset=TipoMateriaLegislativa.objects.all(), |
|
|
|
|
|
empty_label='Selecione', |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
data_apresentacao = forms.DateField(label=u'Data de Apresentação', |
|
|
|
|
|
input_formats=['%d/%m/%Y'], |
|
|
|
|
|
required=False, |
|
|
|
|
|
widget=forms.DateInput( |
|
|
|
|
|
format='%d/%m/%Y', |
|
|
|
|
|
attrs={'class': 'dateinput'})) |
|
|
|
|
|
|
|
|
|
|
|
data_publicacao = forms.DateField(label=u'Data da Publicação', |
|
|
|
|
|
input_formats=['%d/%m/%Y'], |
|
|
|
|
|
required=False, |
|
|
|
|
|
widget=forms.DateInput( |
|
|
|
|
|
format='%d/%m/%Y', |
|
|
|
|
|
attrs={'class': 'dateinput'})) |
|
|
|
|
|
|
|
|
|
|
|
numero = forms.CharField(required=False, label=u'Número da Matéria') |
|
|
|
|
|
numero_protocolo = forms.CharField(required=False, label=u'Núm. Protocolo') |
|
|
|
|
|
ano = forms.CharField(required=False, label=u'Ano da Matéria') |
|
|
|
|
|
assunto = forms.CharField(required=False, label=u'Assunto') |
|
|
|
|
|
|
|
|
|
|
|
ordem = forms.ChoiceField(required=False, |
|
|
autor = forms.CharField(widget=forms.HiddenInput(), required=False) |
|
|
label='Ordenação', |
|
|
|
|
|
choices=ORDENACAO_MATERIAIS, |
|
|
|
|
|
widget=forms.Select( |
|
|
|
|
|
attrs={'class': 'selector'})) |
|
|
|
|
|
|
|
|
|
|
|
localizacao = forms.ModelChoiceField( |
|
|
localizacao = forms.ModelChoiceField( |
|
|
label=_('Localização Atual'), |
|
|
label='Localização Atual', |
|
|
required=False, |
|
|
required=False, |
|
|
queryset=UnidadeTramitacao.objects.all(), |
|
|
queryset=UnidadeTramitacao.objects.all(), |
|
|
empty_label='Selecione', |
|
|
empty_label='Selecione', |
|
@ -608,36 +565,55 @@ class MateriaLegislativaPesquisaForm(forms.Form): |
|
|
empty_label='Selecione', |
|
|
empty_label='Selecione', |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
tramitacao = forms.ChoiceField(required=False, |
|
|
em_tramitacao = forms.ChoiceField(required=False, |
|
|
label='Tramitando', |
|
|
label='Tramitando', |
|
|
choices=EM_TRAMITACAO, |
|
|
choices=em_tramitacao(), |
|
|
widget=forms.Select( |
|
|
widget=forms.Select( |
|
|
attrs={'class': 'selector'})) |
|
|
attrs={'class': 'selector'})) |
|
|
|
|
|
|
|
|
tipo_autor = forms.ModelChoiceField( |
|
|
publicacao_inicial = forms.DateField(label=u'Data Publicação Inicial', |
|
|
label=_('Tipo Autor'), |
|
|
input_formats=['%d/%m/%Y'], |
|
|
required=False, |
|
|
required=False, |
|
|
queryset=TipoAutor.objects.all(), |
|
|
widget=forms.DateInput( |
|
|
empty_label='Selecione', |
|
|
format='%d/%m/%Y', |
|
|
) |
|
|
attrs={'class': 'dateinput'})) |
|
|
|
|
|
|
|
|
partido_autor = forms.ModelChoiceField( |
|
|
publicacao_final = forms.DateField(label=u'Data Publicação Final', |
|
|
label=_('Partido (Autor)'), |
|
|
input_formats=['%d/%m/%Y'], |
|
|
required=False, |
|
|
required=False, |
|
|
queryset=Partido.objects.all(), |
|
|
widget=forms.DateInput( |
|
|
empty_label='Selecione') |
|
|
format='%d/%m/%Y', |
|
|
|
|
|
attrs={'class': 'dateinput'})) |
|
|
|
|
|
|
|
|
local_origem_externa = forms.ModelChoiceField( |
|
|
apresentacao_inicial = forms.DateField(label=u'Data Apresentação Inicial', |
|
|
label=_('Localização de Origem'), |
|
|
input_formats=['%d/%m/%Y'], |
|
|
required=False, |
|
|
required=False, |
|
|
queryset=Origem.objects.all(), |
|
|
widget=forms.DateInput( |
|
|
empty_label='Selecione') |
|
|
format='%d/%m/%Y', |
|
|
|
|
|
attrs={'class': 'dateinput'})) |
|
|
|
|
|
|
|
|
|
|
|
apresentacao_final = forms.DateField(label=u'Data Apresentação Final', |
|
|
|
|
|
input_formats=['%d/%m/%Y'], |
|
|
|
|
|
required=False, |
|
|
|
|
|
widget=forms.DateInput( |
|
|
|
|
|
format='%d/%m/%Y', |
|
|
|
|
|
attrs={'class': 'dateinput'})) |
|
|
|
|
|
|
|
|
# TODO: Verificar se esses campos estão corretos |
|
|
class Meta: |
|
|
# assunto? # -> usado 'ementa' em 'assunto' |
|
|
model = MateriaLegislativa |
|
|
# localizacao atual? # |
|
|
fields = ['tipo', |
|
|
# situacao? # |
|
|
'numero', |
|
|
# tramitando? # |
|
|
'ano', |
|
|
|
|
|
'numero_protocolo', |
|
|
|
|
|
'apresentacao_inicial', |
|
|
|
|
|
'apresentacao_final', |
|
|
|
|
|
'publicacao_inicial', |
|
|
|
|
|
'publicacao_final', |
|
|
|
|
|
'autor', |
|
|
|
|
|
'local_origem_externa', |
|
|
|
|
|
'localizacao', |
|
|
|
|
|
'em_tramitacao', |
|
|
|
|
|
'situacao'] |
|
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
def __init__(self, *args, **kwargs): |
|
|
|
|
|
|
|
@ -648,29 +624,34 @@ class MateriaLegislativaPesquisaForm(forms.Form): |
|
|
('ano', 4), |
|
|
('ano', 4), |
|
|
('numero_protocolo', 4)]) |
|
|
('numero_protocolo', 4)]) |
|
|
row3 = crispy_layout_mixin.to_row( |
|
|
row3 = crispy_layout_mixin.to_row( |
|
|
[('data_apresentacao', 6), |
|
|
[('apresentacao_inicial', 6), |
|
|
('data_publicacao', 6)]) |
|
|
('apresentacao_final', 6)]) |
|
|
row4 = crispy_layout_mixin.to_row( |
|
|
row4 = crispy_layout_mixin.to_row( |
|
|
[('autor', 6), |
|
|
[('publicacao_inicial', 6), |
|
|
('partido_autor', 6)]) |
|
|
('publicacao_final', 6)]) |
|
|
row5 = crispy_layout_mixin.to_row( |
|
|
row5 = crispy_layout_mixin.to_row( |
|
|
[('tipo_autor', 6), |
|
|
[('autor', 0), |
|
|
('relator', 6)]) |
|
|
(Button('pesquisar', |
|
|
|
|
|
'Pesquisar Autor', |
|
|
|
|
|
css_class='btn btn-primary btn-sm'), 2), |
|
|
|
|
|
(Button('limpar', |
|
|
|
|
|
'limpar Autor', |
|
|
|
|
|
css_class='btn btn-primary btn-sm'), 10)]) |
|
|
row6 = crispy_layout_mixin.to_row( |
|
|
row6 = crispy_layout_mixin.to_row( |
|
|
[('local_origem_externa', 6), |
|
|
[('local_origem_externa', 6), |
|
|
('localizacao', 6)]) |
|
|
('localizacao', 6)]) |
|
|
row7 = crispy_layout_mixin.to_row( |
|
|
row7 = crispy_layout_mixin.to_row( |
|
|
[('tramitacao', 4), |
|
|
[('em_tramitacao', 6), |
|
|
('situacao', 4), |
|
|
('situacao', 6)]) |
|
|
('ordem', 4)]) |
|
|
|
|
|
row8 = crispy_layout_mixin.to_row( |
|
|
|
|
|
[('assunto', 12)]) |
|
|
|
|
|
|
|
|
|
|
|
self.helper = FormHelper() |
|
|
self.helper = FormHelper() |
|
|
self.helper.layout = Layout( |
|
|
self.helper.layout = Layout( |
|
|
Fieldset(_('Pesquisa Básica'), |
|
|
Fieldset(_('Pesquisa Básica'), |
|
|
row1, row2, row3, row4, row5, row6, row7, row8), |
|
|
row1, row2, row3, row4, |
|
|
form_actions(save_label='Pesquisar') |
|
|
HTML(sapl.utils.autor_label), |
|
|
|
|
|
HTML(sapl.utils.autor_modal), |
|
|
|
|
|
row5, row6, row7, |
|
|
|
|
|
form_actions(save_label='Pesquisar')) |
|
|
) |
|
|
) |
|
|
super(MateriaLegislativaPesquisaForm, self).__init__( |
|
|
super(MateriaLegislativaPesquisaForm, self).__init__( |
|
|
*args, **kwargs) |
|
|
*args, **kwargs) |
|
|