mirror of https://github.com/interlegis/sapl.git
Edward Ribeiro
9 years ago
15 changed files with 2133 additions and 2074 deletions
@ -0,0 +1,146 @@ |
|||
from crispy_forms.helper import FormHelper |
|||
from crispy_forms.layout import HTML, Fieldset, Layout |
|||
from django import forms |
|||
from django.forms import ModelForm |
|||
|
|||
import sapl |
|||
from sapl.layout import form_actions |
|||
|
|||
from .models import CasaLegislativa |
|||
|
|||
ESTADOS = {"": "", |
|||
"AC": "ACRE", |
|||
"AL": "ALAGOAS", |
|||
"AM": "AMAZONAS", |
|||
"AP": "AMAPÁ", |
|||
"BA": "BAHIA", |
|||
"CE": "CEARÁ", |
|||
"DF": "DISTRITO FEDERAL", |
|||
"ES": "ESPíRITO SANTO", |
|||
"GO": "GOIÁS", |
|||
"MA": "MARANHÃO", |
|||
"MG": "MINAS GERAIS", |
|||
"MS": "MATO GROSSO DO SUL", |
|||
"MT": "MATO GROSSO", |
|||
"PA": "PARÁ", |
|||
"PB": "PARAÍBA", |
|||
"PE": "PERNAMBUCO", |
|||
"PI": "PIAUÍ", |
|||
"PR": "PARANÁ", |
|||
"RJ": "RIO DE JANEIRO", |
|||
"RN": "RIO GRANDE DO NORTE", |
|||
"RO": "RONDÔNIA", |
|||
"RR": "RORAIMA", |
|||
"RS": "RIO GRANDE DO SUL", |
|||
"SC": "SANTA CATARINA", |
|||
"SE": "SERGIPE", |
|||
"SP": "SÃO PAULO", |
|||
"TO": "TOCANTINS"} |
|||
|
|||
|
|||
class CasaLegislativaTabelaAuxForm(ModelForm): |
|||
|
|||
uf = forms.ChoiceField(required=True, |
|||
label='UF', |
|||
choices=[(uf, uf) for uf in ESTADOS.keys()], |
|||
widget=forms.Select( |
|||
attrs={'class': 'selector'})) |
|||
|
|||
informacao_geral = forms.CharField(widget=forms.Textarea, |
|||
label='Informação Geral', |
|||
required=False) |
|||
|
|||
telefone = forms.CharField(label='Telefone', |
|||
required=False, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'telefone'})) |
|||
|
|||
logotipo = forms.ImageField(label='Logotipo', |
|||
required=False, |
|||
widget=forms.FileInput |
|||
) |
|||
|
|||
cep = forms.CharField(label='Cep', |
|||
required=True, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'cep'})) |
|||
|
|||
fax = forms.CharField(label='Fax', |
|||
required=False, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'telefone'})) |
|||
|
|||
class Meta: |
|||
|
|||
model = CasaLegislativa |
|||
fields = ['codigo', |
|||
'nome', |
|||
'sigla', |
|||
'endereco', |
|||
'cep', |
|||
'municipio', |
|||
'uf', |
|||
'telefone', |
|||
'fax', |
|||
'logotipo', |
|||
'endereco_web', |
|||
'email', |
|||
'informacao_geral'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('codigo', 2), |
|||
('nome', 5), |
|||
('sigla', 5)]) |
|||
|
|||
row2 = sapl.layout.to_row( |
|||
[('endereco', 8), |
|||
('cep', 4)]) |
|||
|
|||
row3 = sapl.layout.to_row( |
|||
[('municipio', 10), |
|||
('uf', 2)]) |
|||
|
|||
row4 = sapl.layout.to_row( |
|||
[('telefone', 6), |
|||
('fax', 6)]) |
|||
|
|||
row5 = sapl.layout.to_row( |
|||
[('logotipo', 12)]) |
|||
|
|||
row6 = sapl.layout.to_row( |
|||
[('endereco_web', 12)]) |
|||
|
|||
row7 = sapl.layout.to_row( |
|||
[('email', 12)]) |
|||
|
|||
row8 = sapl.layout.to_row( |
|||
[('informacao_geral', 12)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset( |
|||
'Dados Básicos', |
|||
row1, |
|||
row2, |
|||
row3, |
|||
row4, |
|||
row5, |
|||
HTML("""{% if form.logotipo.value %} |
|||
<img class="img-responsive" width="225" height="300" |
|||
src="{{ MEDIA_URL }}{{ form.logotipo.value }}"> |
|||
<br /><br /> |
|||
<input type="submit" |
|||
name="remover" |
|||
id="remover" |
|||
class="button primary" |
|||
value="Remover Logo"/> |
|||
{% endif %}""", ), |
|||
row6, |
|||
row7, |
|||
row8, |
|||
form_actions() |
|||
) |
|||
) |
|||
super(CasaLegislativaTabelaAuxForm, self).__init__(*args, **kwargs) |
@ -0,0 +1,173 @@ |
|||
from crispy_forms.helper import FormHelper |
|||
from crispy_forms.layout import Fieldset, Layout |
|||
from django import forms |
|||
from django.forms import ModelForm |
|||
|
|||
import sapl |
|||
from parlamentares.models import Filiacao |
|||
from sapl.layout import form_actions |
|||
|
|||
from .models import Comissao, Participacao |
|||
|
|||
|
|||
class CadastrarComissaoForm(ModelForm): |
|||
|
|||
class Meta: |
|||
|
|||
model = Comissao |
|||
fields = ['nome', |
|||
'tipo', |
|||
'sigla', |
|||
'data_criacao', |
|||
'data_extincao', |
|||
'unidade_deliberativa', |
|||
|
|||
'local_reuniao', |
|||
'agenda_reuniao', |
|||
'telefone_reuniao', |
|||
'endereco_secretaria', |
|||
'telefone_secretaria', |
|||
'fax_secretaria', |
|||
'secretario', |
|||
'email', |
|||
'finalidade', |
|||
|
|||
'apelido_temp', |
|||
'data_instalacao_temp', |
|||
'data_final_prevista_temp', |
|||
'data_prorrogada_temp', |
|||
'data_fim_comissao'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('nome', 8), |
|||
('sigla', 4)]) |
|||
|
|||
row2 = sapl.layout.to_row( |
|||
[('tipo', 3), |
|||
('data_criacao', 3), |
|||
('unidade_deliberativa', 3), |
|||
('data_extincao', 3)]) |
|||
|
|||
row3 = sapl.layout.to_row( |
|||
[('local_reuniao', 4), |
|||
('agenda_reuniao', 4), |
|||
('telefone_reuniao', 4)]) |
|||
|
|||
row4 = sapl.layout.to_row( |
|||
[('endereco_secretaria', 4), |
|||
('telefone_secretaria', 4), |
|||
('fax_secretaria', 4)]) |
|||
|
|||
row5 = sapl.layout.to_row( |
|||
[('secretario', 6), |
|||
('email', 6)]) |
|||
|
|||
row6 = sapl.layout.to_row( |
|||
[('finalidade', 12)]) |
|||
|
|||
row7 = sapl.layout.to_row( |
|||
[('apelido_temp', 9), |
|||
('data_instalacao_temp', 3)]) |
|||
|
|||
row8 = sapl.layout.to_row( |
|||
[('data_final_prevista_temp', 4), |
|||
('data_prorrogada_temp', 4), |
|||
('data_fim_comissao', 4)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset( |
|||
'Cadastrar Comissão', |
|||
Fieldset( |
|||
'Dados Básicos', |
|||
row1, |
|||
row2 |
|||
), |
|||
Fieldset( |
|||
'Dados Complementares', |
|||
row3, |
|||
row4, |
|||
row5, |
|||
row6 |
|||
), |
|||
Fieldset( |
|||
'Temporária', |
|||
row7, |
|||
row8 |
|||
), |
|||
form_actions() |
|||
) |
|||
) |
|||
super(CadastrarComissaoForm, self).__init__(*args, **kwargs) |
|||
|
|||
|
|||
class ComposicaoForm(forms.Form): |
|||
periodo = forms.CharField() |
|||
|
|||
|
|||
class ParticipacaoCadastroForm(ModelForm): |
|||
|
|||
YES_OR_NO = ( |
|||
(True, 'Sim'), |
|||
(False, 'Não') |
|||
) |
|||
|
|||
parlamentar_id = forms.ModelChoiceField( |
|||
label='Parlamentar', |
|||
required=True, |
|||
queryset=Filiacao.objects.filter( |
|||
data_desfiliacao__isnull=True, parlamentar__ativo=True).order_by( |
|||
'parlamentar__nome_parlamentar'), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
data_designacao = forms.DateField(label=u'Data Designação', |
|||
input_formats=['%d/%m/%Y'], |
|||
required=True, |
|||
widget=forms.DateInput( |
|||
format='%d/%m/%Y')) |
|||
|
|||
data_desligamento = forms.DateField(label=u'Data Desligamento', |
|||
input_formats=['%d/%m/%Y'], |
|||
required=False, |
|||
widget=forms.DateInput( |
|||
format='%d/%m/%Y')) |
|||
|
|||
class Meta: |
|||
model = Participacao |
|||
fields = ['parlamentar_id', |
|||
'cargo', |
|||
'titular', |
|||
'data_designacao', |
|||
'data_desligamento', |
|||
'motivo_desligamento', |
|||
'observacao'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
self.helper = FormHelper() |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('parlamentar_id', 4), |
|||
('cargo', 4), |
|||
('titular', 4)]) |
|||
|
|||
row2 = sapl.layout.to_row( |
|||
[('data_designacao', 6), |
|||
('data_desligamento', 6)]) |
|||
|
|||
row3 = sapl.layout.to_row( |
|||
[('motivo_desligamento', 12)]) |
|||
|
|||
row4 = sapl.layout.to_row( |
|||
[('observacao', 12)]) |
|||
|
|||
self.helper.layout = Layout( |
|||
Fieldset( |
|||
'Formulário de Cadastro', |
|||
row1, row2, row3, row4 |
|||
), |
|||
form_actions() |
|||
) |
|||
super(ParticipacaoCadastroForm, self).__init__(*args, **kwargs) |
@ -0,0 +1,741 @@ |
|||
from datetime import date |
|||
|
|||
from crispy_forms.helper import FormHelper |
|||
from crispy_forms.layout import Column, Fieldset, Layout |
|||
from django import forms |
|||
from django.forms import ModelForm |
|||
from django.utils.safestring import mark_safe |
|||
|
|||
import sapl |
|||
from norma.models import LegislacaoCitada, TipoNormaJuridica |
|||
from parlamentares.models import Parlamentar, Partido |
|||
from sapl.layout import form_actions |
|||
|
|||
from .models import (Anexada, Autor, DespachoInicial, DocumentoAcessorio, |
|||
MateriaLegislativa, Numeracao, Origem, Proposicao, |
|||
Relatoria, StatusTramitacao, TipoAutor, TipoDocumento, |
|||
TipoMateriaLegislativa, Tramitacao, UnidadeTramitacao) |
|||
|
|||
|
|||
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')] |
|||
|
|||
|
|||
def get_local_origem(): |
|||
return [('E', 'Poder Executivo'), |
|||
('L', 'Poder Legislativo')] |
|||
|
|||
|
|||
def em_tramitacao(): |
|||
return [('', 'Tanto Faz'), |
|||
(True, 'Sim'), |
|||
(False, 'Não')] |
|||
|
|||
|
|||
def ordenacao_materias(): |
|||
return [(1, 'Crescente'), |
|||
(2, 'Decrescente')] |
|||
|
|||
|
|||
class HorizontalRadioRenderer(forms.RadioSelect.renderer): |
|||
|
|||
def render(self): |
|||
return mark_safe(u' '.join([u'%s ' % w for w in self])) |
|||
|
|||
|
|||
class ProposicaoForm(ModelForm): |
|||
|
|||
descricao = forms.CharField( |
|||
label='Descrição', required=True, |
|||
widget=forms.Textarea()) |
|||
|
|||
tipo_materia = forms.ModelChoiceField( |
|||
label='Matéria Vinculada', |
|||
required=False, |
|||
queryset=TipoMateriaLegislativa.objects.all(), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
numero_materia = forms.CharField( |
|||
label='Número', required=False) |
|||
|
|||
ano_materia = forms.CharField( |
|||
label='Ano', required=False) |
|||
|
|||
class Meta: |
|||
model = Proposicao |
|||
fields = ['tipo', |
|||
'descricao', |
|||
'texto_original'] |
|||
exclude = ['autor', |
|||
'data_envio', |
|||
'data_recebimento', |
|||
'data_devolucao', |
|||
'justificativa_devolucao', |
|||
'numero_proposicao', |
|||
'status', |
|||
'materia', |
|||
'documento'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('tipo', 12)]) |
|||
row2 = sapl.layout.to_row( |
|||
[('descricao', 12)]) |
|||
row3 = sapl.layout.to_row( |
|||
[('tipo_materia', 4), |
|||
('numero_materia', 4), |
|||
('ano_materia', 4)]) |
|||
row4 = sapl.layout.to_row( |
|||
[('texto_original', 10)]) |
|||
|
|||
row4.append( |
|||
Column(form_actions(), css_class='col-md-2')) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset('Incluir Proposição', |
|||
row1, row2, row3, row4) |
|||
) |
|||
super(ProposicaoForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
|
|||
class DocumentoAcessorioForm(ModelForm): |
|||
|
|||
tipo = forms.ModelChoiceField( |
|||
label='Tipo', |
|||
required=True, |
|||
queryset=TipoDocumento.objects.all(), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
data = forms.DateField(label='Data', |
|||
required=False, |
|||
input_formats=['%d/%m/%Y'], |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
nome = forms.CharField( |
|||
label='Nome', required=True) |
|||
|
|||
autor = forms.CharField( |
|||
label='Autor', required=True) |
|||
|
|||
ementa = forms.CharField( |
|||
label='Ementa', required=True) |
|||
|
|||
class Meta: |
|||
model = DocumentoAcessorio |
|||
fields = ['tipo', |
|||
'nome', |
|||
'data', |
|||
'autor', |
|||
'ementa'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('tipo', 4), |
|||
('nome', 4), |
|||
('data', 4)]) |
|||
|
|||
row2 = sapl.layout.to_row( |
|||
[('autor', 12)]) |
|||
|
|||
row3 = sapl.layout.to_row( |
|||
[('ementa', 12)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset( |
|||
'Incluir Documento Acessório', |
|||
row1, row2, row3, |
|||
form_actions() |
|||
) |
|||
) |
|||
super(DocumentoAcessorioForm, self).__init__(*args, **kwargs) |
|||
|
|||
|
|||
class RelatoriaForm(ModelForm): |
|||
data_designacao_relator = forms.DateField( |
|||
label=u'Data Designação', |
|||
input_formats=['%d/%m/%Y'], |
|||
required=False, |
|||
widget=forms.DateInput( |
|||
format='%d/%m/%Y', |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
data_destituicao_relator = forms.DateField( |
|||
label=u'Data Destituição', |
|||
input_formats=['%d/%m/%Y'], |
|||
required=False, |
|||
widget=forms.DateInput( |
|||
format='%d/%m/%Y', |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
class Meta: |
|||
model = Relatoria |
|||
fields = ['data_designacao_relator', |
|||
'comissao', |
|||
'parlamentar', |
|||
'data_destituicao_relator', |
|||
'tipo_fim_relatoria' |
|||
] |
|||
|
|||
|
|||
class TramitacaoForm(ModelForm): |
|||
|
|||
data_tramitacao = forms.DateField(label=u'Data Tramitação', |
|||
input_formats=['%d/%m/%Y'], |
|||
required=False, |
|||
widget=forms.DateInput( |
|||
format='%d/%m/%Y', |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
data_encaminhamento = forms.DateField(label=u'Data Encaminhamento', |
|||
input_formats=['%d/%m/%Y'], |
|||
required=False, |
|||
widget=forms.DateInput( |
|||
format='%d/%m/%Y', |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
data_fim_prazo = forms.DateField(label=u'Data Fim Prazo', |
|||
input_formats=['%d/%m/%Y'], |
|||
required=False, |
|||
widget=forms.DateInput( |
|||
format='%d/%m/%Y', |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
class Meta: |
|||
model = Tramitacao |
|||
fields = ['data_tramitacao', |
|||
'unidade_tramitacao_local', |
|||
'status', |
|||
'turno', |
|||
'urgente', |
|||
'unidade_tramitacao_destino', |
|||
'data_encaminhamento', |
|||
'data_fim_prazo', |
|||
'texto'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
row1 = sapl.layout.to_row( |
|||
[('data_tramitacao', 6), |
|||
('unidade_tramitacao_local', 6)]) |
|||
|
|||
row2 = sapl.layout.to_row( |
|||
[('status', 5), |
|||
('turno', 5), |
|||
('urgente', 2)]) |
|||
|
|||
row3 = sapl.layout.to_row( |
|||
[('unidade_tramitacao_destino', 12)]) |
|||
|
|||
row4 = sapl.layout.to_row( |
|||
[('data_encaminhamento', 6), |
|||
('data_fim_prazo', 6)]) |
|||
|
|||
row5 = sapl.layout.to_row( |
|||
[('texto', 12)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset('Incluir Tramitação', |
|||
row1, row2, row3, row4, row5, |
|||
), |
|||
form_actions() |
|||
) |
|||
super(TramitacaoForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
|
|||
class LegislacaoCitadaForm(ModelForm): |
|||
|
|||
tipo = forms.ModelChoiceField( |
|||
label='Tipo Norma', |
|||
required=True, |
|||
queryset=TipoNormaJuridica.objects.all(), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
numero = forms.CharField(label='Número', required=True) |
|||
|
|||
ano = forms.CharField(label='Ano', required=True) |
|||
|
|||
disposicao = forms.CharField(label='Disposição', required=False) |
|||
|
|||
parte = forms.CharField(label='Parte', required=False) |
|||
|
|||
livro = forms.CharField(label='Livro', required=False) |
|||
|
|||
titulo = forms.CharField(label='Título', required=False) |
|||
|
|||
capitulo = forms.CharField(label='Capítulo', required=False) |
|||
|
|||
secao = forms.CharField(label='Seção', required=False) |
|||
|
|||
subsecao = forms.CharField(label='Subseção', required=False) |
|||
|
|||
artigo = forms.CharField(label='Artigo', required=False) |
|||
|
|||
paragrafo = forms.CharField(label='Parágrafo', required=False) |
|||
|
|||
inciso = forms.CharField(label='Inciso', required=False) |
|||
|
|||
alinea = forms.CharField(label='Alínea', required=False) |
|||
|
|||
item = forms.CharField(label='Item', required=False) |
|||
|
|||
class Meta: |
|||
model = LegislacaoCitada |
|||
fields = ['tipo', |
|||
'numero', |
|||
'ano', |
|||
'disposicao', |
|||
'parte', |
|||
'livro', |
|||
'titulo', |
|||
'capitulo', |
|||
'secao', |
|||
'subsecao', |
|||
'artigo', |
|||
'paragrafo', |
|||
'inciso', |
|||
'alinea', |
|||
'item'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('tipo', 4), |
|||
('numero', 4), |
|||
('ano', 4)]) |
|||
|
|||
row2 = sapl.layout.to_row( |
|||
[('disposicao', 3), |
|||
('parte', 3), |
|||
('livro', 3), |
|||
('titulo', 3)]) |
|||
|
|||
row3 = sapl.layout.to_row( |
|||
[('capitulo', 3), |
|||
('secao', 3), |
|||
('subsecao', 3), |
|||
('artigo', 3)]) |
|||
|
|||
row4 = sapl.layout.to_row( |
|||
[('paragrafo', 3), |
|||
('inciso', 3), |
|||
('alinea', 3), |
|||
('item', 3)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.form_class = 'form-horizontal' |
|||
self.helper.layout = Layout( |
|||
Fieldset( |
|||
'Incluir Legislação Citada', |
|||
row1, row2, row3, row4, |
|||
form_actions() |
|||
) |
|||
) |
|||
super(LegislacaoCitadaForm, self).__init__(*args, **kwargs) |
|||
|
|||
|
|||
class NumeracaoForm(ModelForm): |
|||
|
|||
tipo_materia = forms.ModelChoiceField( |
|||
label='Tipo de Matéria', |
|||
required=True, |
|||
queryset=TipoMateriaLegislativa.objects.all(), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
data_materia = forms.DateField(label='Data', |
|||
required=False, |
|||
input_formats=['%d/%m/%Y'], |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
ano_materia = forms.ChoiceField(required=True, |
|||
label='Ano', |
|||
choices=get_range_anos(), |
|||
widget=forms.Select( |
|||
attrs={'class': 'selector'})) |
|||
|
|||
numero_materia = forms.CharField( |
|||
label='Número', required=True) |
|||
|
|||
class Meta: |
|||
model = Numeracao |
|||
fields = ['tipo_materia', |
|||
'numero_materia', |
|||
'ano_materia', |
|||
'data_materia'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('tipo_materia', 12)]) |
|||
row2 = sapl.layout.to_row( |
|||
[('numero_materia', 4), |
|||
('ano_materia', 4), |
|||
('data_materia', 4)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset( |
|||
'Incluir Numeração', |
|||
row1, row2, |
|||
form_actions() |
|||
) |
|||
) |
|||
super(NumeracaoForm, self).__init__(*args, **kwargs) |
|||
|
|||
|
|||
class DespachoInicialForm(ModelForm): |
|||
|
|||
class Meta: |
|||
model = DespachoInicial |
|||
fields = ['comissao'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset( |
|||
'Adicionar Despacho Inicial', |
|||
'comissao', |
|||
form_actions() |
|||
) |
|||
) |
|||
super(DespachoInicialForm, self).__init__(*args, **kwargs) |
|||
|
|||
|
|||
class MateriaAnexadaForm(ModelForm): |
|||
|
|||
tipo = forms.ModelChoiceField( |
|||
label='Tipo', |
|||
required=True, |
|||
queryset=TipoMateriaLegislativa.objects.all(), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
numero = forms.CharField(label='Número', required=True) |
|||
|
|||
ano = forms.CharField(label='Ano', required=True) |
|||
|
|||
data_anexacao = forms.DateField(label='Data Anexação', |
|||
required=True, |
|||
input_formats=['%d/%m/%Y'], |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
data_desanexacao = forms.DateField(label='Data Desanexação', |
|||
required=False, |
|||
input_formats=['%d/%m/%Y'], |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
class Meta: |
|||
model = Anexada |
|||
fields = ['tipo', 'data_anexacao', 'data_desanexacao'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('tipo', 4), |
|||
('numero', 4), |
|||
('ano', 4)]) |
|||
row2 = sapl.layout.to_row( |
|||
[('data_anexacao', 6), |
|||
('data_desanexacao', 6)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset( |
|||
'Anexar Matéria', |
|||
row1, row2, |
|||
form_actions() |
|||
) |
|||
) |
|||
super(MateriaAnexadaForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
|
|||
class FormularioSimplificadoForm(ModelForm): |
|||
|
|||
data_apresentacao = forms.DateField(label=u'Data Apresentação', |
|||
input_formats=['%d/%m/%Y'], |
|||
required=False, |
|||
widget=forms.DateInput( |
|||
format='%d/%m/%Y')) |
|||
|
|||
class Meta: |
|||
model = MateriaLegislativa |
|||
fields = ['tipo', |
|||
'numero', |
|||
'ano', |
|||
'data_apresentacao', |
|||
'numero_protocolo', |
|||
'regime_tramitacao', |
|||
'em_tramitacao', |
|||
'ementa', |
|||
'texto_original'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('tipo', 4), |
|||
('numero', 4), |
|||
('ano', 4)]) |
|||
|
|||
row2 = sapl.layout.to_row( |
|||
[('data_apresentacao', 4), |
|||
('numero_protocolo', 4), |
|||
('regime_tramitacao', 4)]) |
|||
|
|||
row3 = sapl.layout.to_row( |
|||
[('texto_original', 9), |
|||
('em_tramitacao', 3)]) |
|||
|
|||
row4 = sapl.layout.to_row( |
|||
[('ementa', 12)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset( |
|||
'Formulário Simplificado', |
|||
Fieldset( |
|||
'Identificação Básica', |
|||
row1, row2, row3, row4 |
|||
), |
|||
form_actions() |
|||
) |
|||
) |
|||
super(FormularioSimplificadoForm, self).__init__(*args, **kwargs) |
|||
|
|||
|
|||
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' |
|||
), |
|||
form_actions() |
|||
) |
|||
) |
|||
super(FormularioCadastroForm, self).__init__(*args, **kwargs) |
|||
|
|||
|
|||
class AutoriaForm(forms.Form): |
|||
tipo_autor = forms.CharField() |
|||
nome_autor = forms.CharField() |
|||
primeiro_autor = forms.CharField() |
|||
partido_autor = forms.ModelChoiceField( |
|||
label='Partido (Autor)', |
|||
required=False, |
|||
queryset=Partido.objects.all(), |
|||
empty_label='Selecione') |
|||
|
|||
|
|||
class MateriaLegislativaPesquisaForm(forms.Form): |
|||
|
|||
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, |
|||
label='Ordenação', |
|||
choices=ordenacao_materias(), |
|||
widget=forms.Select( |
|||
attrs={'class': 'selector'})) |
|||
|
|||
localizacao = forms.ModelChoiceField( |
|||
label='Localização Atual', |
|||
required=False, |
|||
queryset=UnidadeTramitacao.objects.all(), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
situacao = forms.ModelChoiceField( |
|||
label='Situação', |
|||
required=False, |
|||
queryset=StatusTramitacao.objects.all(), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
tramitacao = forms.ChoiceField(required=False, |
|||
label='Tramitando', |
|||
choices=em_tramitacao(), |
|||
widget=forms.Select( |
|||
attrs={'class': 'selector'})) |
|||
|
|||
tipo_autor = forms.ModelChoiceField( |
|||
label='Tipo Autor', |
|||
required=False, |
|||
queryset=TipoAutor.objects.all(), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
partido_autor = forms.ModelChoiceField( |
|||
label='Partido (Autor)', |
|||
required=False, |
|||
queryset=Partido.objects.all(), |
|||
empty_label='Selecione') |
|||
|
|||
local_origem_externa = forms.ModelChoiceField( |
|||
label='Localização de Origem', |
|||
required=False, |
|||
queryset=Origem.objects.all(), |
|||
empty_label='Selecione') |
|||
|
|||
# TODO: Verificar se esses campos estão corretos |
|||
# assunto? # -> usado 'ementa' em 'assunto' |
|||
# localizacao atual? # |
|||
# situacao? # |
|||
# tramitando? # |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('tipo', 12)]) |
|||
row2 = sapl.layout.to_row( |
|||
[('numero', 4), |
|||
('ano', 4), |
|||
('numero_protocolo', 4)]) |
|||
row3 = sapl.layout.to_row( |
|||
[('data_apresentacao', 6), |
|||
('data_publicacao', 6)]) |
|||
row4 = sapl.layout.to_row( |
|||
[('autor', 6), |
|||
('partido_autor', 6)]) |
|||
row5 = sapl.layout.to_row( |
|||
[('tipo_autor', 6), |
|||
('relator', 6)]) |
|||
row6 = sapl.layout.to_row( |
|||
[('local_origem_externa', 6), |
|||
('localizacao', 6)]) |
|||
row7 = sapl.layout.to_row( |
|||
[('tramitacao', 4), |
|||
('situacao', 4), |
|||
('ordem', 4)]) |
|||
row8 = sapl.layout.to_row( |
|||
[('assunto', 12)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset('Pesquisa Básica', |
|||
row1, row2, row3, row4, row5, row6, row7, row8), |
|||
form_actions(save_label='Pesquisar') |
|||
) |
|||
super(MateriaLegislativaPesquisaForm, self).__init__( |
|||
*args, **kwargs) |
@ -0,0 +1,102 @@ |
|||
from crispy_forms.helper import FormHelper |
|||
from crispy_forms.layout import Fieldset, Layout |
|||
from django import forms |
|||
from django.forms import ModelForm |
|||
from django.utils.safestring import mark_safe |
|||
|
|||
import sapl |
|||
from materia.models import TipoMateriaLegislativa |
|||
from sapl.layout import form_actions |
|||
|
|||
from .models import NormaJuridica |
|||
|
|||
|
|||
def get_esferas(): |
|||
return [('E', 'Estadual'), |
|||
('F', 'Federal'), |
|||
('M', 'Municipal')] |
|||
|
|||
|
|||
class HorizontalRadioRenderer(forms.RadioSelect.renderer): |
|||
|
|||
def render(self): |
|||
return mark_safe(u' '.join([u'%s ' % w for w in self])) |
|||
|
|||
|
|||
class NormaJuridicaForm(ModelForm): |
|||
|
|||
tipo_materia = forms.ModelChoiceField( |
|||
label='Matéria Legislativa', |
|||
required=False, |
|||
queryset=TipoMateriaLegislativa.objects.all(), |
|||
empty_label='Selecione' |
|||
) |
|||
|
|||
numero_materia = forms.CharField(label='Número', required=False) |
|||
|
|||
ano_materia = forms.CharField(label='Ano', required=False) |
|||
|
|||
class Meta: |
|||
model = NormaJuridica |
|||
fields = ['tipo', |
|||
'numero', |
|||
'ano', |
|||
'data', |
|||
'esfera_federacao', |
|||
'complemento', |
|||
'tipo_materia', |
|||
'numero_materia', |
|||
'ano_materia', |
|||
'data_publicacao', |
|||
'veiculo_publicacao', |
|||
'pagina_inicio_publicacao', |
|||
'pagina_fim_publicacao', |
|||
'ementa', |
|||
'indexacao', |
|||
'observacao', |
|||
'texto_integral'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('tipo', 4), |
|||
('numero', 4), |
|||
('ano', 4)]) |
|||
|
|||
row2 = sapl.layout.to_row( |
|||
[('data', 4), |
|||
('esfera_federacao', 4), |
|||
('complemento', 4)]) |
|||
|
|||
row3 = sapl.layout.to_row( |
|||
[('tipo_materia', 4), |
|||
('numero_materia', 4), |
|||
('ano_materia', 4)]) |
|||
|
|||
row4 = sapl.layout.to_row( |
|||
[('data_publicacao', 3), |
|||
('veiculo_publicacao', 3), |
|||
('pagina_inicio_publicacao', 3), |
|||
('pagina_fim_publicacao', 3)]) |
|||
|
|||
row5 = sapl.layout.to_row( |
|||
[('texto_integral', 12)]) |
|||
|
|||
row6 = sapl.layout.to_row( |
|||
[('ementa', 12)]) |
|||
|
|||
row7 = sapl.layout.to_row( |
|||
[('indexacao', 12)]) |
|||
|
|||
row8 = sapl.layout.to_row( |
|||
[('observacao', 12)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset('Cadastro de Norma Jurídica', |
|||
Fieldset('Identificação Básica', |
|||
row1, row2, row3, row4, row5, row6, row7, row8), |
|||
form_actions() |
|||
) |
|||
) |
|||
super(NormaJuridicaForm, self).__init__(*args, **kwargs) |
@ -0,0 +1,324 @@ |
|||
from crispy_forms.helper import FormHelper |
|||
from crispy_forms.layout import HTML, Fieldset, Layout, Submit |
|||
from django import forms |
|||
from django.forms import ModelForm |
|||
from django.utils.safestring import mark_safe |
|||
|
|||
import sapl |
|||
from sapl.layout import form_actions |
|||
|
|||
from .models import Dependente, Filiacao, Mandato, Parlamentar |
|||
|
|||
|
|||
class ParlamentaresListForm(forms.Form): |
|||
periodo = forms.CharField() |
|||
|
|||
|
|||
class HorizontalRadioRenderer(forms.RadioSelect.renderer): |
|||
|
|||
def render(self): |
|||
return mark_safe(u' '.join([u'%s ' % w for w in self])) |
|||
|
|||
|
|||
class ParlamentaresForm (ModelForm): |
|||
ativo = forms.TypedChoiceField( |
|||
coerce=lambda x: x == 'True', |
|||
choices=((True, 'Sim'), (False, 'Não')), |
|||
widget=forms.RadioSelect( |
|||
renderer=HorizontalRadioRenderer |
|||
) |
|||
) |
|||
|
|||
cpf = forms.CharField(label='C.P.F', |
|||
required=False, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'cpf'})) |
|||
|
|||
rg = forms.CharField(label='R.G.', |
|||
required=False, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'rg'})) |
|||
|
|||
titulo_eleitor = forms.CharField(label='Título de Eleitor', |
|||
required=False, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'titulo_eleitor'})) |
|||
|
|||
telefone = forms.CharField(label='Telefone', |
|||
required=False, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'telefone'})) |
|||
|
|||
fax = forms.CharField(label='Fax', |
|||
required=False, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'telefone'})) |
|||
|
|||
cep_residencia = forms.CharField(label='CEP', |
|||
required=False, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'cep'})) |
|||
|
|||
telefone_residencia = forms.CharField(label='Telefone', |
|||
required=False, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'telefone'})) |
|||
|
|||
fax_residencia = forms.CharField(label='Fax', |
|||
required=False, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'telefone'})) |
|||
|
|||
fotografia = forms.ImageField(label='Fotografia', |
|||
required=False, |
|||
widget=forms.FileInput |
|||
) |
|||
|
|||
class Meta: |
|||
model = Parlamentar |
|||
fields = ['nome_parlamentar', |
|||
'ativo', |
|||
'nome_completo', |
|||
'nivel_instrucao', |
|||
'sexo', |
|||
'cpf', |
|||
'rg', |
|||
'titulo_eleitor', |
|||
'data_nascimento', |
|||
'situacao_militar', |
|||
'profissao', |
|||
'endereco_web', |
|||
'email', |
|||
'numero_gab_parlamentar', |
|||
'telefone', |
|||
'fax', |
|||
'endereco_residencia', |
|||
'cep_residencia', |
|||
'municipio_residencia', |
|||
'telefone_residencia', |
|||
'fax_residencia', |
|||
'locais_atuacao', |
|||
'fotografia', |
|||
'biografia'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('nome_parlamentar', 8), ('ativo', 4)]) |
|||
|
|||
row2 = sapl.layout.to_row( |
|||
[('nome_completo', 12)]) |
|||
|
|||
row3 = sapl.layout.to_row( |
|||
[('nivel_instrucao', 4), |
|||
('sexo', 4), |
|||
('data_nascimento', 4)]) |
|||
|
|||
row4 = sapl.layout.to_row( |
|||
[('cpf', 4), |
|||
('rg', 4), |
|||
('titulo_eleitor', 4)]) |
|||
|
|||
row5 = sapl.layout.to_row( |
|||
[('situacao_militar', 6), |
|||
('profissao', 6)]) |
|||
|
|||
row6 = sapl.layout.to_row( |
|||
[('endereco_web', 12)]) |
|||
|
|||
row7 = sapl.layout.to_row( |
|||
[('email', 12)]) |
|||
|
|||
row8 = sapl.layout.to_row( |
|||
[('numero_gab_parlamentar', 4), |
|||
('telefone', 4), |
|||
('fax', 4)]) |
|||
|
|||
row9 = sapl.layout.to_row( |
|||
[('endereco_residencia', 6), |
|||
('cep_residencia', 6)]) |
|||
|
|||
row10 = sapl.layout.to_row( |
|||
[('municipio_residencia', 12)]) |
|||
|
|||
row11 = sapl.layout.to_row( |
|||
[('telefone_residencia', 6), |
|||
('fax_residencia', 6)]) |
|||
|
|||
row12 = sapl.layout.to_row( |
|||
[('locais_atuacao', 12)]) |
|||
|
|||
row13 = sapl.layout.to_row( |
|||
[('fotografia', 12)]) |
|||
|
|||
row14 = sapl.layout.to_row( |
|||
[('biografia', 12)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset('Cadastro do Parlamentar', |
|||
row1, row2, row3, row4, row5, |
|||
row6, row7, row8, row9, row10, |
|||
row11, row12, row13, |
|||
HTML("""{% if form.fotografia.value %} |
|||
<img class="img-responsive" width="225" height="300" |
|||
src="{{ MEDIA_URL }}{{ form.fotografia.value }}"> |
|||
<br /><br /> |
|||
<input type="submit" |
|||
name="remover" |
|||
id="remover" |
|||
class="button primary" |
|||
value="Remover Foto"/> |
|||
{% endif %}""", ), |
|||
row14, |
|||
form_actions()) |
|||
|
|||
) |
|||
super(ParlamentaresForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
|
|||
class ParlamentaresEditForm(ParlamentaresForm): |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
super(ParlamentaresEditForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
self.helper.layout[0][-1:] = form_actions(more=[ |
|||
HTML(' '), |
|||
Submit('excluir', 'Excluir', |
|||
css_class='btn btn-primary')]) |
|||
|
|||
|
|||
class MandatoForm(ModelForm): |
|||
|
|||
class Meta: |
|||
model = Mandato |
|||
fields = ['legislatura', |
|||
'coligacao', |
|||
'votos_recebidos', |
|||
'data_fim_mandato', |
|||
'data_expedicao_diploma', |
|||
'observacao'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('legislatura', 4), |
|||
('coligacao', 4), |
|||
('votos_recebidos', 4)]) |
|||
|
|||
row2 = sapl.layout.to_row( |
|||
[('data_fim_mandato', 6), |
|||
('data_expedicao_diploma', 6)]) |
|||
|
|||
row3 = sapl.layout.to_row( |
|||
[('observacao', 12)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset('Adicionar Mandato', row1, row2, row3, |
|||
form_actions()) |
|||
|
|||
) |
|||
super(MandatoForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
|
|||
class MandatoEditForm(MandatoForm): |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
super(MandatoEditForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
self.helper.layout[0][-1:] = form_actions(more=[ |
|||
HTML(' '), |
|||
Submit('excluir', 'Excluir', |
|||
css_class='btn btn-primary')]) |
|||
|
|||
|
|||
class DependenteForm(ModelForm): |
|||
|
|||
class Meta: |
|||
model = Dependente |
|||
fields = ['nome', |
|||
'data_nascimento', |
|||
'tipo', |
|||
'sexo', |
|||
'cpf', |
|||
'rg', |
|||
'titulo_eleitor'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('nome', 12)]) |
|||
|
|||
row2 = sapl.layout.to_row( |
|||
[('tipo', 4), |
|||
('sexo', 4), |
|||
('data_nascimento', 4)]) |
|||
|
|||
row3 = sapl.layout.to_row( |
|||
[('cpf', 4), |
|||
('rg', 4), |
|||
('titulo_eleitor', 4)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset('Cadastro de Dependentes', |
|||
row1, row2, row3, |
|||
form_actions()) |
|||
|
|||
) |
|||
super(DependenteForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
|
|||
class DependenteEditForm(DependenteForm): |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
super(DependenteEditForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
self.helper.layout[0][-1:] = form_actions(more=[ |
|||
HTML(' '), |
|||
Submit('excluir', 'Excluir', |
|||
css_class='btn btn-primary')]) |
|||
|
|||
|
|||
class FiliacaoForm(ModelForm): |
|||
|
|||
class Meta: |
|||
model = Filiacao |
|||
fields = ['partido', |
|||
'data', |
|||
'data_desfiliacao'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('partido', 4), |
|||
('data', 4), |
|||
('data_desfiliacao', 4)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset('Adicionar Filiação', row1, |
|||
form_actions()) |
|||
|
|||
) |
|||
super(FiliacaoForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
|
|||
class FiliacaoEditForm(FiliacaoForm): |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
super(FiliacaoEditForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
self.helper.layout[0][-1:] = form_actions(more=[ |
|||
HTML(' '), |
|||
Submit('excluir', 'Excluir', |
|||
css_class='btn btn-primary')]) |
@ -0,0 +1,410 @@ |
|||
from datetime import date |
|||
|
|||
from crispy_forms.helper import FormHelper |
|||
from crispy_forms.layout import HTML, Field, Fieldset, Layout |
|||
from django import forms |
|||
from django.forms import ModelForm |
|||
from django.utils.safestring import mark_safe |
|||
|
|||
import sapl |
|||
from materia.models import TipoMateriaLegislativa |
|||
from sapl.layout import form_actions |
|||
|
|||
from .models import (Autor, DocumentoAcessorioAdministrativo, |
|||
TipoDocumentoAdministrativo, TramitacaoAdministrativo) |
|||
|
|||
|
|||
def get_range_anos(): |
|||
return [('', 'Selecione')] \ |
|||
+ [(year, year) for year in range(date.today().year, 1960, -1)] |
|||
|
|||
|
|||
TIPOS_PROTOCOLO = [('', 'Selecione'), |
|||
('0', 'Enviado'), |
|||
('1', 'Recebido')] |
|||
|
|||
|
|||
class HorizontalRadioRenderer(forms.RadioSelect.renderer): |
|||
|
|||
def render(self): |
|||
return mark_safe(u' '.join([u'%s ' % w for w in self])) |
|||
|
|||
|
|||
class ProtocoloForm(forms.Form): |
|||
|
|||
YEARS = get_range_anos() |
|||
|
|||
tipo_protocolo = forms.ChoiceField(required=False, |
|||
label='Tipo de Protocolo', |
|||
choices=TIPOS_PROTOCOLO, |
|||
widget=forms.Select( |
|||
attrs={'class': 'selector'})) |
|||
|
|||
numero_protocolo = forms.CharField( |
|||
label='Número de Protocolo', required=False) |
|||
ano = forms.ChoiceField(required=False, |
|||
label='Ano', |
|||
choices=YEARS, |
|||
widget=forms.Select( |
|||
attrs={'class': 'selector'})) |
|||
|
|||
inicial = forms.DateField(label='Data Inicial', |
|||
required=False, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
final = forms.DateField(label='Data Final', required=False, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
natureza_processo = forms.ChoiceField(required=False, |
|||
label='Natureza Processo', |
|||
choices=[ |
|||
('0', 'Administrativo'), |
|||
('1', 'Legislativo'), |
|||
('', 'Ambos')], |
|||
# widget=forms.RadioSelect( |
|||
# renderer=HorizontalRadioRenderer) |
|||
|
|||
) |
|||
|
|||
tipo_documento = forms.ModelChoiceField( |
|||
label='Tipo de Documento', |
|||
required=False, |
|||
queryset=TipoDocumentoAdministrativo.objects.all(), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
interessado = forms.CharField(label='Interessado', required=False) |
|||
|
|||
tipo_materia = forms.ModelChoiceField( |
|||
label='Tipo de Matéria', |
|||
required=False, |
|||
queryset=TipoMateriaLegislativa.objects.all(), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
autor = forms.ModelChoiceField( |
|||
label='Autor', |
|||
required=False, |
|||
queryset=Autor.objects.all().order_by('tipo'), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
assunto = forms.CharField(label='Assunto', required=False) |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('numero_protocolo', 6), |
|||
('ano', 6)]) |
|||
|
|||
row2 = sapl.layout.to_row( |
|||
[('inicial', 6), |
|||
('final', 6)]) |
|||
|
|||
row3 = sapl.layout.to_row( |
|||
[('tipo_documento', 4), |
|||
('tipo_protocolo', 4), |
|||
('tipo_materia', 4)]) |
|||
|
|||
row4 = sapl.layout.to_row( |
|||
[('interessado', 4), |
|||
('autor', 4), |
|||
('assunto', 4)]) |
|||
|
|||
row5 = sapl.layout.to_row( |
|||
[('natureza_processo', 12)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout(row1, row2, |
|||
row3, row4, |
|||
row5, form_actions(save_label='Pesquisar')) |
|||
super(ProtocoloForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
|
|||
class AnularProcoloAdmForm(forms.Form): |
|||
|
|||
YEARS = get_range_anos() |
|||
|
|||
numero_protocolo = forms.CharField( |
|||
label='Número de Protocolo', required=True) |
|||
ano_protocolo = forms.ChoiceField(required=False, |
|||
label='Ano', |
|||
choices=YEARS, |
|||
widget=forms.Select( |
|||
attrs={'class': 'selector'})) |
|||
justificativa_anulacao = forms.CharField( |
|||
widget=forms.Textarea, label='Motivo', required=True) |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('numero_protocolo', 6), |
|||
('ano_protocolo', 6)]) |
|||
row2 = sapl.layout.to_row( |
|||
[('justificativa_anulacao', 12)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset('Identificação do Protocolo', |
|||
row1, |
|||
row2, |
|||
HTML(" "), |
|||
form_actions(save_label='Anular') |
|||
) |
|||
) |
|||
super(AnularProcoloAdmForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
|
|||
class ProtocoloDocumentForm(forms.Form): |
|||
|
|||
NUMERACAO_CHOICES = [('1', 'Sequencial por Ano'), |
|||
('2', 'Sequencial Único')] |
|||
|
|||
numeracao = forms.ChoiceField(required=True, |
|||
choices=NUMERACAO_CHOICES, |
|||
widget=forms.RadioSelect( |
|||
renderer=HorizontalRadioRenderer), |
|||
label='') |
|||
|
|||
tipo_protocolo = forms.ChoiceField(required=True, |
|||
label='Tipo de Protocolo', |
|||
choices=TIPOS_PROTOCOLO[1:], |
|||
widget=forms.RadioSelect( |
|||
renderer=HorizontalRadioRenderer)) |
|||
|
|||
tipo_documento = forms.ModelChoiceField( |
|||
label='Tipo de Documento', |
|||
required=False, |
|||
queryset=TipoDocumentoAdministrativo.objects.all(), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
num_paginas = forms.CharField(label='Núm. Páginas', required=True) |
|||
assunto = forms.CharField( |
|||
widget=forms.Textarea, label='Assunto', required=True) |
|||
|
|||
interessado = forms.CharField(required=True, |
|||
label='Interessado') |
|||
|
|||
observacao = forms.CharField(required=True, |
|||
widget=forms.Textarea, label='Observação') |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('numeracao', 12)]) |
|||
row2 = sapl.layout.to_row( |
|||
[('tipo_protocolo', 12)]) |
|||
row3 = sapl.layout.to_row( |
|||
[('tipo_documento', 6), |
|||
('num_paginas', 6)]) |
|||
row4 = sapl.layout.to_row( |
|||
[('assunto', 12)]) |
|||
row5 = sapl.layout.to_row( |
|||
[('interessado', 12)]) |
|||
row6 = sapl.layout.to_row( |
|||
[('observacao', 12)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset('Protocolo - Opção de Numeração', row1), |
|||
Fieldset('Identificação de Documento', |
|||
row2, |
|||
row3, |
|||
row4, |
|||
row5, |
|||
row6, |
|||
HTML(" "), |
|||
form_actions(save_label='Protocolar Documento') |
|||
) |
|||
) |
|||
super(ProtocoloDocumentForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
|
|||
class ProtocoloMateriaForm(forms.Form): |
|||
|
|||
NUMERACAO_CHOICES = [('1', 'Sequencial por Ano'), |
|||
('2', 'Sequencial Único')] |
|||
|
|||
numeracao = forms.ChoiceField(required=True, |
|||
choices=NUMERACAO_CHOICES, |
|||
widget=forms.RadioSelect( |
|||
renderer=HorizontalRadioRenderer), |
|||
label='') |
|||
|
|||
tipo_protocolo = forms.ChoiceField(required=True, |
|||
label='Tipo de Protocolo', |
|||
choices=TIPOS_PROTOCOLO[1:], |
|||
widget=forms.RadioSelect( |
|||
renderer=HorizontalRadioRenderer)) |
|||
|
|||
tipo_materia = forms.ModelChoiceField( |
|||
label='Tipo de Matéria', |
|||
required=False, |
|||
queryset=TipoMateriaLegislativa.objects.all(), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
num_paginas = forms.CharField(label='Núm. Páginas', required=True) |
|||
ementa = forms.CharField( |
|||
widget=forms.Textarea, label='Ementa', required=True) |
|||
|
|||
autor = forms.ModelChoiceField( |
|||
label='Autor', |
|||
required=False, |
|||
queryset=Autor.objects.all().order_by('tipo'), |
|||
empty_label='Selecione', |
|||
) |
|||
|
|||
observacao = forms.CharField(required=True, |
|||
widget=forms.Textarea, |
|||
label='Observação') |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('numeracao', 12)]) |
|||
row2 = sapl.layout.to_row( |
|||
[('tipo_materia', 6), |
|||
('num_paginas', 6)]) |
|||
row3 = sapl.layout.to_row( |
|||
[('ementa', 12)]) |
|||
row4 = sapl.layout.to_row( |
|||
[('autor', 12)]) |
|||
row5 = sapl.layout.to_row( |
|||
[('observacao', 12)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset('Protocolo - Opção de Numeração', row1), |
|||
Fieldset('Identificação da Matéria', |
|||
row2, |
|||
row3, |
|||
row4, |
|||
row5, |
|||
HTML(" "), |
|||
form_actions(save_label='Protocolar Matéria') |
|||
) |
|||
) |
|||
super(ProtocoloMateriaForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
|
|||
class ProposicaoSimpleForm(forms.Form): |
|||
|
|||
tipo = forms.CharField(label='Tipo', |
|||
widget=forms.TextInput( |
|||
attrs={'readonly': 'readonly'})) |
|||
materia = forms.CharField(label='Matéria', |
|||
widget=forms.TextInput( |
|||
attrs={'readonly': 'readonly'})) |
|||
data_envio = forms.DateField(label='Data Envio', |
|||
widget=forms.DateInput( |
|||
format='%d/%m/%Y', |
|||
attrs={'readonly': 'readonly'})) |
|||
data_recebimento = forms.DateField(label='Data Recebimento', |
|||
widget=forms.DateInput( |
|||
format='%d/%m/%Y', |
|||
attrs={'readonly': 'readonly'})) |
|||
|
|||
descricao = forms.CharField(label='Descrição', |
|||
widget=forms.TextInput( |
|||
attrs={'readonly': 'readonly'})) |
|||
|
|||
numero_proposicao = forms.CharField(label='Número', |
|||
widget=forms.TextInput( |
|||
attrs={'readonly': 'readonly'})) |
|||
# ano = forms.CharField(label='Ano', |
|||
# widget = forms.TextInput( |
|||
# attrs={'readonly':'readonly'})) |
|||
|
|||
|
|||
class DocumentoAcessorioAdministrativoForm(ModelForm): |
|||
|
|||
data = forms.DateField(label=u'Data', input_formats=['%d/%m/%Y'], |
|||
required=False, |
|||
widget=forms.DateInput(format='%d/%m/%Y')) |
|||
|
|||
class Meta: |
|||
model = DocumentoAcessorioAdministrativo |
|||
fields = ['tipo', |
|||
'nome', |
|||
'data', |
|||
'autor', |
|||
'arquivo', |
|||
'assunto'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset( |
|||
'Incluir Documento Acessório', |
|||
'tipo', |
|||
'nome', |
|||
'data', |
|||
'autor', |
|||
'arquivo', |
|||
'assunto', |
|||
form_actions() |
|||
) |
|||
) |
|||
super(DocumentoAcessorioAdministrativoForm, self).__init__( |
|||
*args, **kwargs) |
|||
|
|||
|
|||
class TramitacaoAdmForm(ModelForm): |
|||
|
|||
data_tramitacao = forms.DateField(label=u'Data Tramitação', |
|||
input_formats=['%d/%m/%Y'], |
|||
required=False, |
|||
widget=forms.DateInput( |
|||
format='%d/%m/%Y', |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
data_encaminhamento = forms.DateField(label=u'Data Encaminhamento', |
|||
input_formats=['%d/%m/%Y'], |
|||
required=False, |
|||
widget=forms.DateInput( |
|||
format='%d/%m/%Y', |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
data_fim_prazo = forms.DateField(label=u'Data Fim Prazo', |
|||
input_formats=['%d/%m/%Y'], |
|||
required=False, |
|||
widget=forms.DateInput( |
|||
format='%d/%m/%Y', |
|||
attrs={'class': 'dateinput'})) |
|||
|
|||
class Meta: |
|||
model = TramitacaoAdministrativo |
|||
fields = ['data_tramitacao', |
|||
'unidade_tramitacao_local', |
|||
'status', |
|||
'unidade_tramitacao_destino', |
|||
'data_encaminhamento', |
|||
'data_fim_prazo', |
|||
'texto', |
|||
'documento', |
|||
] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset('Incluir Tramitação', |
|||
'data_tramitacao', |
|||
'unidade_tramitacao_local', |
|||
'status', |
|||
'unidade_tramitacao_destino', |
|||
'data_encaminhamento', |
|||
'data_fim_prazo', |
|||
'texto'), |
|||
Field('documento', type="hidden"), |
|||
form_actions() |
|||
) |
|||
super(TramitacaoAdmForm, self).__init__( |
|||
*args, **kwargs) |
@ -0,0 +1,159 @@ |
|||
from crispy_forms.helper import FormHelper |
|||
from crispy_forms.layout import Column, Fieldset, Layout |
|||
from django import forms |
|||
from django.forms import ModelForm |
|||
|
|||
import sapl |
|||
from sapl.layout import form_actions |
|||
|
|||
from .models import AcompanharMateria, SessaoPlenaria |
|||
|
|||
|
|||
class PresencaForm(forms.Form): |
|||
presenca = forms.CharField(required=False, initial=False) |
|||
parlamentar = forms.CharField(required=False, max_length=20) |
|||
|
|||
|
|||
class VotacaoNominalForm(forms.Form): |
|||
pass |
|||
|
|||
|
|||
class ListMateriaForm(forms.Form): |
|||
error_message = forms.CharField(required=False, label='votacao_aberta') |
|||
|
|||
|
|||
class MateriaOrdemDiaForm(forms.Form): |
|||
data_sessao = forms.CharField(required=True, label='Data da Sessão') |
|||
numero_ordem = forms.IntegerField(required=True, label='Número Ordem') |
|||
tipo_votacao = forms.IntegerField(required=True, label='Tipo Votação') |
|||
tipo_sessao = forms.IntegerField(required=True, label='Tipo da Sessão') |
|||
ano_materia = forms.IntegerField(required=True, label='Ano Matéria') |
|||
numero_materia = forms.IntegerField(required=True, label='Número Matéria') |
|||
tipo_materia = forms.IntegerField(required=True, label='Tipo Matéria') |
|||
observacao = forms.CharField(required=False, label='Ementa') |
|||
error_message = forms.CharField(required=False, label='Matéria') |
|||
|
|||
|
|||
class OradorForm(forms.Form): |
|||
numero_ordem = forms.IntegerField( |
|||
required=True, |
|||
label='Ordem de pronunciamento') |
|||
parlamentar = forms.CharField(required=False, max_length=20) |
|||
url_discurso = forms.CharField(required=False, max_length=100) |
|||
|
|||
|
|||
class OradorDeleteForm(forms.Form): |
|||
pass |
|||
|
|||
|
|||
class MesaForm(forms.Form): |
|||
parlamentar = forms.IntegerField(required=True) |
|||
cargo = forms.IntegerField(required=True) |
|||
|
|||
|
|||
class ExpedienteForm(forms.Form): |
|||
conteudo = forms.CharField(required=False, widget=forms.Textarea) |
|||
|
|||
|
|||
class VotacaoForm(forms.Form): |
|||
votos_sim = forms.CharField(required=True, label='Sim') |
|||
votos_nao = forms.CharField(required=True, label='Não') |
|||
abstencoes = forms.CharField(required=True, label='Abstenções') |
|||
total_votos = forms.CharField(required=False, label='total') |
|||
|
|||
|
|||
class VotacaoEditForm(forms.Form): |
|||
pass |
|||
|
|||
|
|||
class AcompanharMateriaForm(ModelForm): |
|||
|
|||
class Meta: |
|||
model = AcompanharMateria |
|||
fields = ['email'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row([('email', 10)]) |
|||
|
|||
row1.append( |
|||
Column(form_actions(save_label='Cadastrar'), css_class='col-md-2') |
|||
) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset( |
|||
'Acompanhamento de Matéria por e-mail', row1 |
|||
) |
|||
) |
|||
super(AcompanharMateriaForm, self).__init__(*args, **kwargs) |
|||
|
|||
|
|||
class SessaoForm(ModelForm): |
|||
|
|||
hora_inicio = forms.CharField(label='Horário Inicio', |
|||
required=True, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'hora'})) |
|||
|
|||
hora_fim = forms.CharField(label='Horário Fim', |
|||
required=True, |
|||
widget=forms.TextInput( |
|||
attrs={'class': 'hora'})) |
|||
|
|||
class Meta: |
|||
model = SessaoPlenaria |
|||
fields = ['numero', |
|||
'tipo', |
|||
'legislatura', |
|||
'sessao_legislativa', |
|||
'data_inicio', |
|||
'hora_inicio', |
|||
'iniciada', |
|||
'data_fim', |
|||
'hora_fim', |
|||
'finalizada', |
|||
'upload_pauta', |
|||
'upload_ata', |
|||
'url_audio', |
|||
'url_video'] |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
|
|||
row1 = sapl.layout.to_row( |
|||
[('numero', 3), |
|||
('tipo', 3), |
|||
('legislatura', 3), |
|||
('sessao_legislativa', 3)]) |
|||
|
|||
row2 = sapl.layout.to_row( |
|||
[('data_inicio', 4), |
|||
('hora_inicio', 4), |
|||
('iniciada', 4)]) |
|||
|
|||
row3 = sapl.layout.to_row( |
|||
[('data_fim', 4), |
|||
('hora_fim', 4), |
|||
('finalizada', 4)]) |
|||
|
|||
row4 = sapl.layout.to_row( |
|||
[('upload_pauta', 6), |
|||
('upload_ata', 6)]) |
|||
|
|||
row5 = sapl.layout.to_row( |
|||
[('url_audio', 6), |
|||
('url_video', 6)]) |
|||
|
|||
self.helper = FormHelper() |
|||
self.helper.layout = Layout( |
|||
Fieldset( |
|||
'Dados Básicos', |
|||
row1, |
|||
row2, |
|||
row3, |
|||
row4, |
|||
row5, |
|||
form_actions() |
|||
) |
|||
) |
|||
super(SessaoForm, self).__init__(*args, **kwargs) |
Loading…
Reference in new issue