Browse Source

Comeca a refatoracao

pull/339/head
Eduardo Calil 9 years ago
committed by Edward Ribeiro
parent
commit
6a2ad000d4
  1. 117
      protocoloadm/forms.py
  2. 6
      protocoloadm/views.py

117
protocoloadm/forms.py

@ -5,11 +5,14 @@ from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Button, Field, Fieldset, Layout, Submit from crispy_forms.layout import HTML, Button, Field, Fieldset, Layout, Submit
from django import forms from django import forms
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.db import models
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 crispy_layout_mixin import crispy_layout_mixin
import sapl import sapl
import django_filters
from crispy_layout_mixin import form_actions from crispy_layout_mixin import form_actions
from materia.models import Autor, TipoMateriaLegislativa from materia.models import Autor, TipoMateriaLegislativa
from sapl.utils import RANGE_ANOS from sapl.utils import RANGE_ANOS
@ -25,70 +28,85 @@ NATUREZA_PROCESSO = [('0', 'Administrativo'),
('', 'Ambos')] ('', 'Ambos')]
def get_range_anos(): ANO_CHOICES = [('', '---------')] + RANGE_ANOS
return [('', 'Selecione')] \
+ [(year, year) for year in range(date.today().year, 1960, -1)]
class ProtocoloForm(forms.Form): # Importar essa classe de materias.views quando for feito o Merge do branch 217
class RangeWidgetOverride(forms.MultiWidget):
YEARS = get_range_anos() def __init__(self, attrs=None):
widgets = (forms.DateInput(format='%d/%m/%Y',
attrs={'class': 'dateinput',
'placeholder': 'Inicial'}),
forms.DateInput(format='%d/%m/%Y',
attrs={'class': 'dateinput',
'placeholder': 'Final'}))
super(RangeWidgetOverride, self).__init__(widgets, attrs)
tipo_protocolo = forms.ChoiceField(required=False, def decompress(self, value):
label='Tipo de Protocolo', if value:
choices=TIPOS_PROTOCOLO, return [value.start, value.stop]
widget=forms.Select( return [None, None]
attrs={'class': 'selector'}))
numero_protocolo = forms.CharField( def format_output(self, rendered_widgets):
label='Número de Protocolo', required=False) return ''.join(rendered_widgets)
ano = forms.ChoiceField(required=False,
label='Ano',
choices=YEARS,
widget=forms.Select(
attrs={'class': 'selector'}))
inicial = forms.DateField(label='Data Inicial', class ProtocoloFilterSet(django_filters.FilterSet):
required=False,
widget=forms.TextInput(
attrs={'class': 'dateinput'}))
final = forms.DateField(label='Data Final', required=False, filter_overrides = {models.DateField: {
widget=forms.TextInput( 'filter_class': django_filters.DateFromToRangeFilter,
attrs={'class': 'dateinput'})) 'extra': lambda f: {
'label': '%s (%s)' % (f.verbose_name, _('Inicial - Final')),
'widget': RangeWidgetOverride}
}}
natureza_processo = forms.ChoiceField(required=False, ano = django_filters.ChoiceFilter(required=False,
label='Natureza Processo', label=u'Ano da Matéria',
choices=[ choices=ANO_CHOICES,
('0', 'Administrativo'), help_text="")
('1', 'Legislativo'),
('', 'Ambos')])
tipo_documento = forms.ModelChoiceField( assunto_ementa = django_filters.CharFilter(lookup_expr='icontains')
label='Tipo de Documento',
required=False,
queryset=TipoDocumentoAdministrativo.objects.all(),
empty_label='Selecione',
)
interessado = forms.CharField(label='Interessado', required=False) interessado = django_filters.CharFilter(lookup_expr='icontains')
tipo_materia = forms.ModelChoiceField( class Meta:
label='Tipo de Matéria', model = Protocolo
required=False, fields = ['tipo_protocolo',
queryset=TipoMateriaLegislativa.objects.all(), 'numero',
empty_label='Selecione', 'tipo_documento',
'data_publicacao',
'tipo_materia',
'autor'
]
order_by = (
('', 'Selecione'),
('CRE', 'Ordem Crescente'),
('DEC', 'Ordem Decrescente'),
) )
autor = forms.CharField(widget=forms.HiddenInput(), required=False) order_by_mapping = {
'': [],
'CRE': ['ano', 'numero'],
'DEC': ['-ano', '-numero'],
}
assunto = forms.CharField(label='Assunto', required=False) def get_order_by(self, order_value):
if order_value in self.order_by_mapping:
return self.order_by_mapping[order_value]
else:
return super(ProtocoloFilterSet,
self).get_order_by(order_value)
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(ProtocoloFilterSet, self).__init__(*args, **kwargs)
self.filters['autor'].label = 'Tipo de Matéria'
self.filters['assunto_ementa'].label = 'Assunto'
row1 = crispy_layout_mixin.to_row( row1 = crispy_layout_mixin.to_row(
[('numero_protocolo', 6), [('numero', 6),
('ano', 6)]) ('ano', 6)])
row2 = crispy_layout_mixin.to_row( row2 = crispy_layout_mixin.to_row(
@ -102,7 +120,7 @@ class ProtocoloForm(forms.Form):
row4 = crispy_layout_mixin.to_row( row4 = crispy_layout_mixin.to_row(
[('interessado', 6), [('interessado', 6),
('assunto', 6)]) ('assunto_ementa', 6)])
row5 = crispy_layout_mixin.to_row( row5 = crispy_layout_mixin.to_row(
[('autor', 0), [('autor', 0),
@ -113,20 +131,15 @@ class ProtocoloForm(forms.Form):
'Limpar Autor', 'Limpar Autor',
css_class='btn btn-primary btn-sm'), 10)]) css_class='btn btn-primary btn-sm'), 10)])
row6 = crispy_layout_mixin.to_row(
[('natureza_processo', 12)])
self.helper = FormHelper() self.helper = FormHelper()
self.form.helper.form_method = 'GET'
self.helper.layout = Layout(Fieldset(_('Pesquisar Protocolo'), self.helper.layout = Layout(Fieldset(_('Pesquisar Protocolo'),
row1, row2, row1, row2,
row3, row4, row3, row4,
HTML(sapl.utils.autor_label), HTML(sapl.utils.autor_label),
HTML(sapl.utils.autor_modal), HTML(sapl.utils.autor_modal),
row5, row5,
row6,
form_actions(save_label='Pesquisar'))) form_actions(save_label='Pesquisar')))
super(ProtocoloForm, self).__init__(
*args, **kwargs)
class AnularProcoloAdmForm(ModelForm): class AnularProcoloAdmForm(ModelForm):

6
protocoloadm/views.py

@ -63,12 +63,6 @@ class ProtocoloPesquisaView(FormView):
request.POST['inicial'], request.POST['inicial'],
'%d/%m/%Y').strftime('%Y-%m-%d') '%d/%m/%Y').strftime('%Y-%m-%d')
# if request.POST['final']:
# kwargs['final'] = request.POST['final']
# if request.POST['natureza_processo']:
# kwargs['natureza_processo'] = request.POST['natureza_processo']
if request.POST['tipo_documento']: if request.POST['tipo_documento']:
kwargs['tipo_documento'] = request.POST['tipo_documento'] kwargs['tipo_documento'] = request.POST['tipo_documento']

Loading…
Cancel
Save