Browse Source

Cria página de pesquisa referente a ficha

pull/1469/head
Mariana Mendes 8 years ago
parent
commit
453953871f
  1. 56
      sapl/materia/forms.py
  2. 6
      sapl/materia/urls.py
  3. 40
      sapl/materia/views.py
  4. 7
      sapl/templates/materia/impressos/ficha.html
  5. 0
      sapl/templates/materia/impressos/ficha_pdf.html
  6. 10
      sapl/templates/materia/impressos/impressos.html

56
sapl/materia/forms.py

@ -1678,3 +1678,59 @@ class EtiquetaPesquisaForm(forms.Form):
'O processo final não pode ser menor que o inicial'))
return cleaned_data
class FichaPesquisaForm(forms.Form):
tipo_materia = forms.ModelChoiceField(
label=TipoMateriaLegislativa._meta.verbose_name,
queryset=TipoMateriaLegislativa.objects.all(),
required=False,
empty_label='Selecione')
data_inicial = forms.DateField(
label='Data Inicial',
required=False,
widget=forms.DateInput(format='%d/%m/%Y')
)
data_final = forms.DateField(
label='Data Final',
required=False,
widget=forms.DateInput(format='%d/%m/%Y')
)
def __init__(self, *args, **kwargs):
super(FichaPesquisaForm, self).__init__(*args, **kwargs)
row1 = to_row(
[('tipo_materia', 6),
('data_inicial', 3),
('data_final', 3)])
self.helper = FormHelper()
self.helper.layout = Layout(
Fieldset(
('Formulário de Ficha'),
row1,
form_actions(save_label='Pesquisar')
)
)
def clean(self):
cleaned_data = self.cleaned_data
# Verifica se algum campo de data foi preenchido
if cleaned_data['data_inicial'] or cleaned_data['data_final']:
# Então verifica se o usuário preencheu o Incial e mas não
# preencheu o Final, ou vice-versa
if (not cleaned_data['data_inicial'] or
not cleaned_data['data_final']):
raise ValidationError(_(
'Caso pesquise por data, os campos de Data Incial e ' +
'Data Final devem ser preenchidos obrigatoriamente'))
# Caso tenha preenchido, verifica se a data final é maior que
# a inicial
elif cleaned_data['data_final'] < cleaned_data['data_inicial']:
raise ValidationError(_(
'A Data Final não pode ser menor que a Data Inicial'))
return cleaned_data

6
sapl/materia/urls.py

@ -8,7 +8,8 @@ from sapl.materia.views import (AcompanhamentoConfirmarView,
CriarProtocoloMateriaView, DespachoInicialCrud,
DocumentoAcessorioCrud,
DocumentoAcessorioEmLoteView,
EtiquetaPesquisaView, ImpressosView,
ImpressosView, EtiquetaPesquisaView,
FichaPesquisaView,
LegislacaoCitadaCrud, MateriaAssuntoCrud,
MateriaLegislativaCrud,
MateriaLegislativaPesquisaView, MateriaTaView,
@ -35,6 +36,9 @@ urlpatterns_impressos = [
url(r'^materia/impressos/etiqueta-pesquisa/$',
EtiquetaPesquisaView.as_view(),
name='impressos_etiqueta'),
url(r'^materia/impressos/ficha-pesquisa/$',
FichaPesquisaView.as_view(),
name='impressos_ficha'),
]
urlpatterns_materia = [

40
sapl/materia/views.py

@ -47,10 +47,11 @@ from .email_utils import do_envia_email_confirmacao
from .forms import (AcessorioEmLoteFilterSet, AcompanhamentoMateriaForm,
AdicionarVariasAutoriasFilterSet, DespachoInicialForm,
DocumentoAcessorioForm, EtiquetaPesquisaForm,
MateriaAssuntoForm, MateriaLegislativaFilterSet,
MateriaSimplificadaForm, PrimeiraTramitacaoEmLoteFilterSet,
ReceberProposicaoForm, RelatoriaForm,
TramitacaoEmLoteFilterSet, filtra_tramitacao_destino,
FichaPesquisaForm, MateriaAssuntoForm,
MateriaLegislativaFilterSet, MateriaSimplificadaForm,
PrimeiraTramitacaoEmLoteFilterSet, ReceberProposicaoForm,
RelatoriaForm, TramitacaoEmLoteFilterSet,
filtra_tramitacao_destino,
filtra_tramitacao_destino_and_status,
filtra_tramitacao_status)
from .models import (AcompanhamentoMateria, Anexada, AssuntoMateria, Autoria,
@ -1751,7 +1752,8 @@ class ImpressosView(PermissionRequiredMixin, TemplateView):
def gerar_pdf_impressos(request, context):
template = loader.get_template('materia/impressos/pdf.html')
template = loader.get_template('materia/impressos/pdf.html',
'materia/impressos/ficha_pdf.html')
html = template.render(RequestContext(request, context))
response = HttpResponse(content_type="application/pdf")
weasyprint.HTML(
@ -1796,3 +1798,31 @@ class EtiquetaPesquisaView(PermissionRequiredMixin, FormView):
context['materias'] = materias
return gerar_pdf_impressos(self.request, context)
class FichaPesquisaView(PermissionRequiredMixin, FormView):
form_class = FichaPesquisaForm
template_name = 'materia/impressos/ficha.html'
permission_required = ('materia.can_access_impressos', )
def form_valid(self, form):
context = {}
materias = MateriaLegislativa.objects.all().order_by(
'-data_apresentacao')
if form.cleaned_data['tipo_materia']:
materias = materias.filter(tipo=form.cleaned_data['tipo_materia'])
if form.cleaned_data['data_inicial']:
materias = materias.filter(
data_apresentacao__gte=form.cleaned_data['data_inicial'],
data_apresentacao__lte=form.cleaned_data['data_final'])
context['quantidade'] = len(materias)
if context['quantidade'] > 20:
materias = materias[:20]
context['materias'] = materias
return gerar_pdf_impressos(self.request, context)

7
sapl/templates/materia/impressos/ficha.html

@ -0,0 +1,7 @@
{% extends "crud/form.html" %}
{% load i18n crispy_forms_tags %}
{% block base_content %}
<h1 class="page-header">Impressos</h1>
{% crispy form %}
{% endblock base_content %}

0
sapl/templates/materia/impressos/ficha_pdf.html

10
sapl/templates/materia/impressos/impressos.html

@ -15,11 +15,11 @@
<li><a href="{% url 'sapl.materia:impressos_etiqueta' %}">Pesquisar</a></li>
</ul>
{#<h2 class="legend">Ficha</h2>#}
{# <ul>#}
{# <li><a href="{% url 'sapl.materia:impressos_ficha' %}">Pesquisar</a></li>#}
{# </ul>#}
{##}
<h2 class="legend">Ficha</h2>
<ul>
<li><a href="{% url 'sapl.materia:impressos_ficha' %}">Pesquisar</a></li>
</ul>
{#<h2 class="legend">Guia de Remessa</h2>#}
{# <ul>#}
{# <li><a href="{% url 'sapl.materia:impressos_guiaremessa' %}">Pesquisar</a></li>#}

Loading…
Cancel
Save