Browse Source

Comeca a refatoracao

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

187
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,108 +28,118 @@ 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):
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, # Importar essa classe de materias.views quando for feito o Merge do branch 217
label='Natureza Processo', class RangeWidgetOverride(forms.MultiWidget):
choices=[
('0', 'Administrativo'),
('1', 'Legislativo'),
('', 'Ambos')])
tipo_documento = forms.ModelChoiceField( def __init__(self, attrs=None):
label='Tipo de Documento', widgets = (forms.DateInput(format='%d/%m/%Y',
required=False, attrs={'class': 'dateinput',
queryset=TipoDocumentoAdministrativo.objects.all(), 'placeholder': 'Inicial'}),
empty_label='Selecione', forms.DateInput(format='%d/%m/%Y',
) attrs={'class': 'dateinput',
'placeholder': 'Final'}))
super(RangeWidgetOverride, self).__init__(widgets, attrs)
interessado = forms.CharField(label='Interessado', required=False) def decompress(self, value):
if value:
return [value.start, value.stop]
return [None, None]
tipo_materia = forms.ModelChoiceField( def format_output(self, rendered_widgets):
label='Tipo de Matéria', return ''.join(rendered_widgets)
required=False,
queryset=TipoMateriaLegislativa.objects.all(),
empty_label='Selecione',
)
autor = forms.CharField(widget=forms.HiddenInput(), required=False)
assunto = forms.CharField(label='Assunto', required=False) class ProtocoloFilterSet(django_filters.FilterSet):
def __init__(self, *args, **kwargs): filter_overrides = {models.DateField: {
'filter_class': django_filters.DateFromToRangeFilter,
'extra': lambda f: {
'label': '%s (%s)' % (f.verbose_name, _('Inicial - Final')),
'widget': RangeWidgetOverride}
}}
row1 = crispy_layout_mixin.to_row( ano = django_filters.ChoiceFilter(required=False,
[('numero_protocolo', 6), label=u'Ano da Matéria',
('ano', 6)]) choices=ANO_CHOICES,
help_text="")
row2 = crispy_layout_mixin.to_row( assunto_ementa = django_filters.CharFilter(lookup_expr='icontains')
[('inicial', 6),
('final', 6)])
row3 = crispy_layout_mixin.to_row( interessado = django_filters.CharFilter(lookup_expr='icontains')
[('tipo_documento', 4),
('tipo_protocolo', 4),
('tipo_materia', 4)])
row4 = crispy_layout_mixin.to_row( class Meta:
[('interessado', 6), model = Protocolo
('assunto', 6)]) fields = ['tipo_protocolo',
'numero',
'tipo_documento',
'data_publicacao',
'tipo_materia',
'autor'
]
row5 = crispy_layout_mixin.to_row( order_by = (
[('autor', 0), ('', 'Selecione'),
(Button('pesquisar', ('CRE', 'Ordem Crescente'),
'Pesquisar Autor', ('DEC', 'Ordem Decrescente'),
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( order_by_mapping = {
[('natureza_processo', 12)]) '': [],
'CRE': ['ano', 'numero'],
'DEC': ['-ano', '-numero'],
}
self.helper = FormHelper() def get_order_by(self, order_value):
self.helper.layout = Layout(Fieldset(_('Pesquisar Protocolo'), if order_value in self.order_by_mapping:
row1, row2, return self.order_by_mapping[order_value]
row3, row4, else:
HTML(sapl.utils.autor_label), return super(ProtocoloFilterSet,
HTML(sapl.utils.autor_modal), self).get_order_by(order_value)
row5,
row6, def __init__(self, *args, **kwargs):
form_actions(save_label='Pesquisar'))) super(ProtocoloFilterSet, self).__init__(*args, **kwargs)
super(ProtocoloForm, self).__init__(
*args, **kwargs) self.filters['autor'].label = 'Tipo de Matéria'
self.filters['assunto_ementa'].label = 'Assunto'
row1 = crispy_layout_mixin.to_row(
[('numero', 6),
('ano', 6)])
row2 = crispy_layout_mixin.to_row(
[('inicial', 6),
('final', 6)])
row3 = crispy_layout_mixin.to_row(
[('tipo_documento', 4),
('tipo_protocolo', 4),
('tipo_materia', 4)])
row4 = crispy_layout_mixin.to_row(
[('interessado', 6),
('assunto_ementa', 6)])
row5 = crispy_layout_mixin.to_row(
[('autor', 0),
(Button('pesquisar',
'Pesquisar Autor',
css_class='btn btn-primary btn-sm'), 2),
(Button('limpar',
'Limpar Autor',
css_class='btn btn-primary btn-sm'), 10)])
self.helper = FormHelper()
self.form.helper.form_method = 'GET'
self.helper.layout = Layout(Fieldset(_('Pesquisar Protocolo'),
row1, row2,
row3, row4,
HTML(sapl.utils.autor_label),
HTML(sapl.utils.autor_modal),
row5,
form_actions(save_label='Pesquisar')))
class AnularProcoloAdmForm(ModelForm): class AnularProcoloAdmForm(ModelForm):

8
protocoloadm/views.py

@ -62,13 +62,7 @@ class ProtocoloPesquisaView(FormView):
kwargs['data'] = datetime.strptime( kwargs['data'] = datetime.strptime(
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