Browse Source

Refatora protocolar documento

pull/272/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
committed by Edward Ribeiro
parent
commit
82fe8e88c4
  1. 42
      protocoloadm/forms.py
  2. 60
      protocoloadm/views.py

42
protocoloadm/forms.py

@ -17,6 +17,7 @@ from sapl.utils import RANGE_ANOS
from .models import (DocumentoAcessorioAdministrativo, DocumentoAdministrativo,
Protocolo, TipoDocumentoAdministrativo,
TramitacaoAdministrativo)
from materia.models import Autor
TIPOS_PROTOCOLO = [('0', 'Enviado'), ('1', 'Recebido')]
@ -286,7 +287,7 @@ class ProtocoloDocumentForm(ModelForm):
*args, **kwargs)
class ProtocoloMateriaForm(forms.Form):
class ProtocoloMateriaForm(ModelForm):
NUMERACAO_CHOICES = [('1', 'Sequencial por Ano'),
('2', 'Sequencial Único')]
@ -303,22 +304,26 @@ class ProtocoloMateriaForm(forms.Form):
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.IntegerField(widget=forms.HiddenInput(), required=False)
autor = forms.CharField(widget=forms.HiddenInput(), required=False)
def clean_autor(self):
data_autor = self.cleaned_data['autor']
try:
autor = Autor.objects.get(id=data_autor)
except ObjectDoesNotExist:
data_autor = None
else:
data_autor = autor
return data_autor
observacao = forms.CharField(required=True,
widget=forms.Textarea,
label='Observação')
class Meta:
model = Protocolo
fields = ['numeracao',
'tipo_protocolo',
'tipo_materia',
'numero_paginas',
'autor',
'observacao']
def __init__(self, *args, **kwargs):
@ -327,7 +332,7 @@ class ProtocoloMateriaForm(forms.Form):
row2 = crispy_layout_mixin.to_row(
[('tipo_materia', 4),
('tipo_protocolo', 4),
('num_paginas', 4)])
('numero_paginas', 4)])
row3 = crispy_layout_mixin.to_row(
[('autor', 0),
(Button('pesquisar',
@ -335,11 +340,9 @@ class ProtocoloMateriaForm(forms.Form):
css_class='btn btn-primary btn-sm'), 2),
(Button('limpar',
'limpar Autor',
css_class='btn btn-primary btn-sm'), 2)])
css_class='btn btn-primary btn-sm'), 10)])
row4 = crispy_layout_mixin.to_row(
[('observacao', 12)])
row5 = crispy_layout_mixin.to_row(
[('ementa', 12)])
self.helper = FormHelper()
self.helper.layout = Layout(
@ -350,7 +353,6 @@ class ProtocoloMateriaForm(forms.Form):
HTML(sapl.utils.autor_modal),
row3,
row4,
row5,
form_actions(save_label='Protocolar Matéria')
)
)

60
protocoloadm/views.py

@ -249,7 +249,7 @@ class ComprovanteProtocoloView(TemplateView):
return context
class ProtocoloMateriaView(FormView):
class ProtocoloMateriaView(CreateView):
template_name = "protocoloadm/protocolar_materia.html"
form_class = ProtocoloMateriaForm
@ -258,40 +258,34 @@ class ProtocoloMateriaView(FormView):
def get_success_url(self):
return reverse('protocolo')
def post(self, request, *args, **kwargs):
def form_valid(self, form):
if self.request.POST['numeracao'] == '1':
numeracao = Protocolo.objects.filter(
ano=date.today().year).aggregate(Max('numero'))
else:
numeracao = Protocolo.objects.all().aggregate(Max('numero'))
form = ProtocoloMateriaForm(request.POST)
if numeracao is None:
numeracao['numero__max'] = 0
if form.is_valid():
if request.POST['numeracao'] == '1':
numeracao = Protocolo.objects.filter(
ano=date.today().year).aggregate(Max('numero'))
else:
numeracao = Protocolo.objects.all().aggregate(Max('numero'))
if numeracao is None:
numeracao['numero__max'] = 0
protocolo = Protocolo()
protocolo.numero = numeracao['numero__max'] + 1
protocolo.ano = datetime.now().year
protocolo.data = datetime.now().strftime("%Y-%m-%d")
protocolo.hora = datetime.now().strftime("%H:%M")
protocolo.timestamp = datetime.now().strftime("%Y-%m-%d %H:%M")
protocolo.tipo_protocolo = request.POST['tipo_protocolo']
protocolo.tipo_processo = '0' # TODO validar o significado
protocolo.autor = Autor.objects.get(id=request.POST['autor'])
protocolo.anulado = False
protocolo.tipo_materia = TipoMateriaLegislativa.objects.get(
id=request.POST['tipo_materia'])
protocolo.numero_paginas = request.POST['num_paginas']
protocolo.observacao = sub(
' ', ' ', strip_tags(request.POST['observacao']))
protocolo.save()
return self.form_valid(form)
else:
return self.form_invalid(form)
protocolo = Protocolo()
protocolo.numero = numeracao['numero__max'] + 1
protocolo.ano = datetime.now().year
protocolo.data = datetime.now().strftime("%Y-%m-%d")
protocolo.hora = datetime.now().strftime("%H:%M")
protocolo.timestamp = datetime.now().strftime("%Y-%m-%d %H:%M")
protocolo.tipo_protocolo = self.request.POST['tipo_protocolo']
protocolo.tipo_processo = '0' # TODO validar o significado
if form.cleaned_data['autor']:
protocolo.autor = form.cleaned_data['autor']
protocolo.anulado = False
protocolo.tipo_materia = TipoMateriaLegislativa.objects.get(
id=self.request.POST['tipo_materia'])
protocolo.numero_paginas = self.request.POST['numero_paginas']
protocolo.observacao = self.request.POST['observacao']
protocolo.save()
return redirect(self.get_success_url())
# TODO: move to Proposicao app

Loading…
Cancel
Save