Browse Source

Refactor Pesquisa Protocolo so that it passes qa_test

pull/11/merge
Edward Ribeiro 10 years ago
parent
commit
8ed354fe31
  1. 5
      protocoloadm/urls.py
  2. 131
      protocoloadm/views.py
  3. 2
      templates/protocoloadm/protocolo_pesquisa.html

5
protocoloadm/urls.py

@ -1,7 +1,7 @@
from django.conf.urls import include, url from django.conf.urls import include, url
from protocoloadm.views import (AnularProtocoloAdmView, ProtocoloPesquisaView, from protocoloadm.views import (AnularProtocoloAdmView, ProtocoloListView,
ProtocoloListView, ProtocoloPesquisaView,
documento_acessorio_administrativo_crud, documento_acessorio_administrativo_crud,
documento_administrativo_crud, documento_administrativo_crud,
protocolo_documento_crud, protocolo_documento_crud,
@ -34,5 +34,4 @@ urlpatterns = [
# include(anular_protocolo_crud.urls), name='anular_protocolo'), # include(anular_protocolo_crud.urls), name='anular_protocolo'),
url(r'^protocoloadm/anular-protocolo', url(r'^protocoloadm/anular-protocolo',
AnularProtocoloAdmView.as_view(), name='anular_protocolo'), AnularProtocoloAdmView.as_view(), name='anular_protocolo'),
] ]

131
protocoloadm/views.py

@ -1,4 +1,5 @@
from datetime import date, datetime from datetime import date, datetime
from django import forms from django import forms
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
@ -96,18 +97,23 @@ protocolo_materia_crud = build_crud(
# [('justificativa_anulacao', 12)]], # [('justificativa_anulacao', 12)]],
# ]) # ])
def get_tipos_materia(): def get_tipos_materia():
return [('', 'Selecione')] + [(t.id, t.sigla + ' - ' + t.descricao) return [('', 'Selecione')] \
for t in TipoMateriaLegislativa.objects.all()] + [(t.id, t.sigla + ' - ' + t.descricao)
for t in TipoMateriaLegislativa.objects.all()]
def get_range_anos(): def get_range_anos():
return [('', 'Selecione')] + [(year, year) return [('', 'Selecione')] \
for year in range(date.today().year, 1960, -1)] + [(year, year) for year in range(date.today().year, 1960, -1)]
def get_tipos_documento(): def get_tipos_documento():
return [('', 'Selecione')] + [(t.id, t.sigla + ' - ' + t.descricao) return [('', 'Selecione')] \
for t in TipoDocumentoAdministrativo.objects.all()] + [(t.id, t.sigla + ' - ' + t.descricao)
for t in TipoDocumentoAdministrativo.objects.all()]
class ProtocoloListView(ListView): class ProtocoloListView(ListView):
template_name = 'protocoloadm/protocolo_list.html' template_name = 'protocoloadm/protocolo_list.html'
@ -125,42 +131,47 @@ class ProtocoloForm(forms.Form):
YEARS = get_range_anos() YEARS = get_range_anos()
tipo_protocolo = forms.ChoiceField(required=False, tipo_protocolo = forms.ChoiceField(required=False,
label='Tipo de Protocolo', label='Tipo de Protocolo',
choices=TIPOS_PROTOCOLO, choices=TIPOS_PROTOCOLO,
widget=forms.Select( widget=forms.Select(
attrs={'class': 'selector'})) attrs={'class': 'selector'}))
numero_protocolo = forms.CharField( numero_protocolo = forms.CharField(
label='Número de Protocolo', required=False) label='Número de Protocolo', required=False)
ano = forms.ChoiceField(required=False, ano = forms.ChoiceField(required=False,
label='Ano', label='Ano',
choices=YEARS, choices=YEARS,
widget=forms.Select( widget=forms.Select(
attrs={'class': 'selector'})) attrs={'class': 'selector'}))
inicial = forms.DateField(label='Data Inicial', inicial = forms.DateField(label='Data Inicial',
required=False, widget=forms.TextInput(attrs={'class':'dateinput'})) required=False,
widget=forms.TextInput(
attrs={'class': 'dateinput'}))
final = forms.DateField(label='Data Final', 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.CharField( natureza_processo = forms.CharField(
label='Natureza Processo', required=False) label='Natureza Processo', required=False)
tipo_documento = forms.ChoiceField(required=False, tipo_documento = forms.ChoiceField(required=False,
label='Tipo de Documento', label='Tipo de Documento',
choices=get_tipos_documento(), choices=get_tipos_documento(),
widget=forms.Select( widget=forms.Select(
attrs={'class': 'selector'})) attrs={'class': 'selector'}))
interessado = forms.CharField(label='Interessado', required=False) interessado = forms.CharField(label='Interessado', required=False)
tipo_materia = forms.ChoiceField(required=False, tipo_materia = forms.ChoiceField(required=False,
label='Tipo Matéria', label='Tipo Matéria',
choices=get_tipos_materia(), choices=get_tipos_materia(),
widget=forms.Select( widget=forms.Select(
attrs={'class': 'selector'})) attrs={'class': 'selector'}))
autor = forms.CharField(label='Autor', required=False) autor = forms.CharField(label='Autor', required=False)
assunto = forms.CharField(label='Assunto', required=False) assunto = forms.CharField(label='Assunto', required=False)
class ProtocoloPesquisaView(TemplateView, FormMixin): class ProtocoloPesquisaView(TemplateView, FormMixin):
template_name = 'protocoloadm/protocolo_pesquisa.html' template_name = 'protocoloadm/protocolo_pesquisa.html'
form_class = ProtocoloForm() form_class = ProtocoloForm()
@ -188,52 +199,52 @@ class ProtocoloPesquisaView(TemplateView, FormMixin):
form = ProtocoloForm(request.POST or None) form = ProtocoloForm(request.POST or None)
if form.is_valid(): if form.is_valid():
kwargs = {} kwargs = {}
# format = '%Y-%m-%d' # format = '%Y-%m-%d'
if request.POST['tipo_protocolo']: if request.POST['tipo_protocolo']:
kwargs['tipo_protocolo'] = request.POST['tipo_protocolo'] kwargs['tipo_protocolo'] = request.POST['tipo_protocolo']
if request.POST['numero_protocolo']: if request.POST['numero_protocolo']:
kwargs['numero'] = request.POST['numero_protocolo'] kwargs['numero'] = request.POST['numero_protocolo']
if request.POST['ano']: if request.POST['ano']:
kwargs['ano'] = request.POST['ano'] kwargs['ano'] = request.POST['ano']
if request.POST['inicial']: if request.POST['inicial']:
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']: # if request.POST['final']:
# kwargs['final'] = request.POST['final'] # kwargs['final'] = request.POST['final']
if request.POST['tipo_documento']: if request.POST['tipo_documento']:
kwargs['tipo_documento'] = request.POST['tipo_documento'] kwargs['tipo_documento'] = request.POST['tipo_documento']
if request.POST['interessado']: if request.POST['interessado']:
kwargs['interessado'] = request.POST['interessado'] kwargs['interessado'] = request.POST['interessado']
if request.POST['tipo_materia']: if request.POST['tipo_materia']:
kwargs['tipo_materia'] = request.POST['tipo_materia'] kwargs['tipo_materia'] = request.POST['tipo_materia']
if request.POST['autor']: if request.POST['autor']:
kwargs['autor'] = request.POST['autor'] kwargs['autor'] = request.POST['autor']
if request.POST['assunto']: if request.POST['assunto']:
kwargs['assunto'] = request.POST['assunto'] kwargs['assunto'] = request.POST['assunto']
protocolos = Protocolo.objects.filter( protocolos = Protocolo.objects.filter(
**kwargs) **kwargs)
self.extra_context['protocolos'] = protocolos self.extra_context['protocolos'] = protocolos
self.extra_context['form'] = form self.extra_context['form'] = form
# return self.form_valid(form) # return self.form_valid(form)
return self.render_to_response( return self.render_to_response(
{'protocolos': protocolos} {'protocolos': protocolos}
) )
else: else:
return self.form_invalid(form) return self.form_invalid(form)
@ -248,7 +259,7 @@ class AnularProcoloAdmForm(forms.Form):
label='Ano', label='Ano',
choices=YEARS, choices=YEARS,
widget=forms.Select( widget=forms.Select(
attrs={'class': 'selector'})) attrs={'class': 'selector'}))
justificativa_anulacao = forms.CharField( justificativa_anulacao = forms.CharField(
widget=forms.Textarea, label='Motivo', required=True) widget=forms.Textarea, label='Motivo', required=True)
@ -276,8 +287,6 @@ class AnularProtocoloAdmView(FormMixin, TemplateView):
form = AnularProcoloAdmForm(request.POST) form = AnularProcoloAdmForm(request.POST)
template_name = reverse("anular_protocolo")
if form.is_valid(): if form.is_valid():
numero = request.POST['numero_protocolo'] numero = request.POST['numero_protocolo']
@ -292,8 +301,8 @@ class AnularProtocoloAdmView(FormMixin, TemplateView):
if protocolo.anulado: if protocolo.anulado:
errors = form._errors.setdefault( errors = form._errors.setdefault(
forms.forms.NON_FIELD_ERRORS, forms.forms.NON_FIELD_ERRORS,
forms.util.ErrorList()) forms.util.ErrorList())
errors.append("Procolo %s/%s já encontra-se anulado" errors.append("Procolo %s/%s já encontra-se anulado"
% (numero, ano)) % (numero, ano))
return self.form_invalid(form) return self.form_invalid(form)
@ -303,10 +312,10 @@ class AnularProtocoloAdmView(FormMixin, TemplateView):
protocolo.user_anulacao = user_anulacao protocolo.user_anulacao = user_anulacao
protocolo.ip_anulacao = ip_addr protocolo.ip_anulacao = ip_addr
protocolo.save() protocolo.save()
message = "Protocolo criado com sucesso" message = "Protocolo criado com sucesso"
return render(request,
return render(request, self.template_name, {'form': form, 'message': message}) reverse("anular_protocolo"),
{'form': form, 'message': message})
except ObjectDoesNotExist: except ObjectDoesNotExist:
errors = form._errors.setdefault( errors = form._errors.setdefault(

2
templates/protocoloadm/protocolo_pesquisa.html

@ -10,9 +10,9 @@
<table> <table>
<tr><td>Número de Protocolo</td> <tr><td>Número de Protocolo</td>
<td>Ano</td>
<td>Assunto</td> <td>Assunto</td>
<td>Tipo de Documento</td> <td>Tipo de Documento</td>
<td>Ano</td>
<td>Data</td> <td>Data</td>
</tr> </tr>
{% for p in protocolos %} {% for p in protocolos %}

Loading…
Cancel
Save