mirror of https://github.com/interlegis/sapl.git
Browse Source
* Cria página de pesquisa referente a ficha * Fix #1436 * Corrige choicefield para modelfield * Fix #1436 -Adiciona teste ao form de materia -Corrige alguns errospull/1478/head
Mariana Mendes
7 years ago
committed by
Edward
10 changed files with 470 additions and 15 deletions
@ -0,0 +1,66 @@ |
|||||
|
import pytest |
||||
|
from django.utils.translation import ugettext as _ |
||||
|
from model_mommy import mommy |
||||
|
|
||||
|
from sapl.materia import forms |
||||
|
from sapl.materia.models import (MateriaLegislativa, TipoMateriaLegislativa) |
||||
|
|
||||
|
@pytest.mark.django_db(transaction=False) |
||||
|
def test_valida_campos_obrigatorios_ficha_pesquisa_form(): |
||||
|
form = forms.FichaPesquisaForm(data={}) |
||||
|
|
||||
|
assert not form.is_valid() |
||||
|
|
||||
|
errors = form.errors |
||||
|
|
||||
|
assert errors['tipo_materia'] == [_('Este campo é obrigatório.')] |
||||
|
assert errors['data_inicial'] == [_('Este campo é obrigatório.')] |
||||
|
assert errors['data_final'] == [_('Este campo é obrigatório.')] |
||||
|
|
||||
|
assert len(errors) == 3 |
||||
|
|
||||
|
@pytest.mark.django_db(transaction=False) |
||||
|
def test_ficha_pesquisa_form_datas_invalidas(): |
||||
|
tipo = mommy.make(TipoMateriaLegislativa) |
||||
|
|
||||
|
form = forms.FichaPesquisaForm(data={'tipo_materia': str(tipo.pk), |
||||
|
'data_inicial': '10/11/2017', |
||||
|
'data_final': '09/11/2017' |
||||
|
}) |
||||
|
assert not form.is_valid() |
||||
|
assert form.errors['__all__'] == [_('A Data Final não pode ser menor que ' |
||||
|
'a Data Inicial')] |
||||
|
|
||||
|
|
||||
|
@pytest.mark.django_db(transaction=False) |
||||
|
def test_ficha_pesquisa_form_invalido(): |
||||
|
tipo = mommy.make(TipoMateriaLegislativa) |
||||
|
|
||||
|
form = forms.FichaPesquisaForm(data={'tipo_materia': str(tipo.pk), |
||||
|
'data_inicial': '10/11/2017', |
||||
|
'data_final': '09/11/2017' |
||||
|
}) |
||||
|
|
||||
|
assert not form.is_valid() |
||||
|
|
||||
|
|
||||
|
@pytest.mark.django_db(transaction=False) |
||||
|
def test_valida_campos_obrigatorios_ficha_seleciona_form(): |
||||
|
form = forms.FichaSelecionaForm(data={}) |
||||
|
|
||||
|
assert not form.is_valid() |
||||
|
|
||||
|
errors = form.errors |
||||
|
|
||||
|
assert errors['materia'] == [_('Este campo é obrigatório.')] |
||||
|
|
||||
|
assert len(errors) == 1 |
||||
|
|
||||
|
|
||||
|
@pytest.mark.django_db(transaction=False) |
||||
|
def test_ficha_seleciona_form_valido(): |
||||
|
materia = mommy.make(MateriaLegislativa) |
||||
|
|
||||
|
form = forms.FichaSelecionaForm(data={'materia': str(materia.pk)}) |
||||
|
|
||||
|
assert form.is_valid() |
@ -0,0 +1,82 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html> |
||||
|
|
||||
|
<head> |
||||
|
<title>Impressos</title> |
||||
|
<meta charset="utf-8"> |
||||
|
</head> |
||||
|
|
||||
|
<style type="text/css"> |
||||
|
.text_pdf{ |
||||
|
font-family: verdana; |
||||
|
font-size: 77%; |
||||
|
} |
||||
|
.alert_message{ |
||||
|
font-family: verdana; |
||||
|
font-size: 77%; |
||||
|
color: red; |
||||
|
|
||||
|
@media print { |
||||
|
p {page-break-inside: avoid;} |
||||
|
} |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<body style="margin-left:80px;margin-right:80px; margin-top: -50px"> |
||||
|
|
||||
|
{% if quantidade > 30 %} |
||||
|
<b><p class="alert_message">Sua pesquisa retornou mais do que 20 impressos.</p><p class="alert_message">Por questões de performance, foram retornados apenas os 20 primeiros. Caso queira outros, tente fazer uma pesquisa mais específica</p></b> |
||||
|
</br></br></br> |
||||
|
{% endif %} |
||||
|
|
||||
|
{% for m in materias %} |
||||
|
<div style="page-break-inside: avoid;"> |
||||
|
<justify> |
||||
|
<!-- Informa o processo --> |
||||
|
{% if m.numeracao_set.first %} |
||||
|
<strong class="text_pdf">PROCESSO: {{ m.numeracao_set.first.numero_materia }}</strong> |
||||
|
|
||||
|
{% else %} |
||||
|
<strong class="text_pdf">PROCESSO: {{ m.numero }}</strong> |
||||
|
|
||||
|
{% endif %} |
||||
|
|
||||
|
<!-- Informa o tipo da matéria --> |
||||
|
<strong class="text_pdf">{{m.tipo.sigla}}:</strong> <span class="text_pdf"> {{m.numero}}/{{m.ano}} </span> |
||||
|
|
||||
|
<!-- Informa o campo Pref ??? #TODO --> |
||||
|
<strong class="text_pdf">Pref:</strong> |
||||
|
{% if m.numeracao_set.first %} |
||||
|
<span class="text_pdf">{{ m.numeracao_set.first.numero_materia }}</span> |
||||
|
{% endif %} </br |
||||
|
|
||||
|
<!-- Informa a Data de Entrada --> |
||||
|
<strong class="text_pdf">DATA DE ENTRADA:</strong> <span class="text_pdf"> {{m.data_apresentacao}}</span></br> |
||||
|
|
||||
|
<!-- Lista os autores --> |
||||
|
{% if m.autoria_set.all %} |
||||
|
<strong class="text_pdf">Autores:</strong> |
||||
|
{% for a in m.autoria_set.all %} |
||||
|
{% if not forloop.first %} |
||||
|
, <span class="text_pdf">{{a.autor}}</span> |
||||
|
{% else %} |
||||
|
<span class="text_pdf">{{a.autor}}</span> |
||||
|
{% endif %} |
||||
|
{% endfor %} |
||||
|
</br> |
||||
|
{% endif %} |
||||
|
|
||||
|
<!-- Ementa --> |
||||
|
<strong class="text_pdf">EMENTA:</strong> <span class="text_pdf">{{m.ementa}}</span> |
||||
|
|
||||
|
</div> |
||||
|
</justify> |
||||
|
</br> |
||||
|
</br> |
||||
|
</br> |
||||
|
</br> |
||||
|
</br> |
||||
|
|
||||
|
{% endfor %} |
||||
|
|
||||
|
</body> |
@ -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,0 +1,144 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html><head> |
||||
|
|
||||
|
<link rel="stylesheet" href="basicsstyles.css" type="text/css" media="screen"> |
||||
|
<link rel="stylesheet" href="printstyles.css" type="text/css" media="print"> |
||||
|
|
||||
|
<style type="text/css" media="all"> |
||||
|
|
||||
|
body |
||||
|
{ |
||||
|
font-size: small; |
||||
|
font-family: Arial; |
||||
|
line-height: 175%; |
||||
|
background-color: transparent; |
||||
|
margin: 5pt 5pt 0pt 0pt; |
||||
|
} |
||||
|
|
||||
|
#voltar |
||||
|
{ |
||||
|
position: absolute; |
||||
|
top: 50pt; |
||||
|
left: 500pt; |
||||
|
} |
||||
|
|
||||
|
#ementa_texto |
||||
|
{ |
||||
|
font-family: Arial; |
||||
|
line-height: 175%; |
||||
|
border-style: none; |
||||
|
text-align: justify; |
||||
|
padding: 0pt 5pt 0pt 0pt; |
||||
|
line-height: 140%; |
||||
|
font-size: small; |
||||
|
} |
||||
|
|
||||
|
#ficha_menor |
||||
|
{ |
||||
|
background-color: transparent; |
||||
|
margin: -2pt 20pt 0pt 0pt; |
||||
|
position: relative; |
||||
|
width: 285pt; |
||||
|
height: 370pt; |
||||
|
} |
||||
|
|
||||
|
#titulo |
||||
|
{ |
||||
|
font-size: medium; |
||||
|
text-align: center; |
||||
|
} |
||||
|
|
||||
|
#ficha_maior |
||||
|
{ |
||||
|
background-color: #9eddee; |
||||
|
margin:0pt; |
||||
|
position: relative; |
||||
|
width: 285pt; |
||||
|
height: 370pt; |
||||
|
} |
||||
|
|
||||
|
#despacho_inicial |
||||
|
{ |
||||
|
font-family: Arial; |
||||
|
border-style: none; |
||||
|
text-align: justify; |
||||
|
font-size: small; |
||||
|
} |
||||
|
|
||||
|
@media print { |
||||
|
#voltar { display: none; } |
||||
|
} |
||||
|
|
||||
|
</style> |
||||
|
|
||||
|
<body style="margin-left:80px;margin-right:80px; margin-top: -50px"> |
||||
|
|
||||
|
<div style="page-break-inside: avoid;"> |
||||
|
<justify> |
||||
|
<div id="titulo"> |
||||
|
<!-- Informa o processo --> |
||||
|
{% if materia.numeracao_set.first %} |
||||
|
<strong class="text_pdf">PROCESSO Nº: {{ materia.numeracao_set.first.numero_materia }}</strong><br><br> |
||||
|
|
||||
|
{% else %} |
||||
|
<strong class="text_pdf">PROCESSO Nº: {{ materia.numero }}</strong><br><br> |
||||
|
|
||||
|
{% endif %} |
||||
|
</div> |
||||
|
|
||||
|
<!-- Informa o tipo da matéria --> |
||||
|
<strong class="text_pdf">{{materia.tipo}}:</strong> <span class="text_pdf"> {{materia.numero}}/{{materia.ano}} </span><br> |
||||
|
|
||||
|
<!-- Informa a Data de Entrada --> |
||||
|
<strong class="text_pdf">Data de entrada:</strong> <span class="text_pdf"> {{materia.data_apresentacao}}</span></br> |
||||
|
|
||||
|
<table border=0> |
||||
|
<td height="60pt" valign=top> |
||||
|
<div id="ementa_texto"> |
||||
|
<!-- Lista os autores --> |
||||
|
{% if materia.autoria_set.all %} |
||||
|
<strong class="text_pdf">Autor:</strong> |
||||
|
{% for a in materia.autoria_set.all %} |
||||
|
{% if not forloop.first %} |
||||
|
<span class="text_pdf">{{a.autor}}</span><br> |
||||
|
{% else %} |
||||
|
<span class="text_pdf">{{a.autor}}</span><br> |
||||
|
{% endif %} |
||||
|
{% endfor %} |
||||
|
</br> |
||||
|
{% endif %} |
||||
|
</div> |
||||
|
</td> |
||||
|
</table> |
||||
|
|
||||
|
|
||||
|
<br><br><br> |
||||
|
<!-- Ementa --> |
||||
|
<table border=0> |
||||
|
<td height="160pt"> |
||||
|
<div id="ementa_texto"> |
||||
|
<strong class="text_pdf">Ementa:</strong> <span class="text_pdf">{{materia.ementa}}</span> |
||||
|
</div> |
||||
|
</td> |
||||
|
</table> |
||||
|
|
||||
|
<br><br><br> |
||||
|
<table border=0> |
||||
|
<td height="100pt"> |
||||
|
<div id="despacho_inicial"> |
||||
|
<strong class="text_pdf">Despacho Inicial:</strong> |
||||
|
{% for despacho in despachos %} |
||||
|
<br> <span class="text_pdf">{{despacho}}</span> |
||||
|
{% endfor %} |
||||
|
</div> |
||||
|
</td> |
||||
|
</table> |
||||
|
<br> |
||||
|
<strong></strong><br> |
||||
|
<strong>________________NORMA JURIDICA_________________</strong><br><br> |
||||
|
<strong>_________________________________________________</strong> |
||||
|
|
||||
|
</div> |
||||
|
</justify> |
||||
|
|
||||
|
</body> |
@ -0,0 +1,6 @@ |
|||||
|
{% extends "crud/form.html" %} |
||||
|
{% load i18n crispy_forms_tags %} |
||||
|
|
||||
|
{% block base_content %} |
||||
|
{% crispy form %} |
||||
|
{% endblock base_content %} |
Loading…
Reference in new issue