Browse Source

Merge branch '3.1.x' into fix/sessao-nao-iniciada-consulta-publica

pull/3845/head
Edward 2 days ago
committed by GitHub
parent
commit
30fd3cdfed
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 4
      sapl/materia/forms.py
  2. 53
      sapl/relatorios/tests.py
  3. 4
      sapl/relatorios/views.py
  4. 3
      sapl/utils.py

4
sapl/materia/forms.py

@ -1944,10 +1944,6 @@ class ProposicaoForm(FileFieldCheckMixin, forms.ModelForm):
fields = [ fields = [
to_column((Fieldset( to_column((Fieldset(
TipoProposicao._meta.verbose_name, Field('tipo')), 12)), TipoProposicao._meta.verbose_name, Field('tipo')), 12)),
to_column(
(Alert('teste',
css_class="ementa_materia hidden alert-info",
dismiss=False), 12)),
to_column(('descricao', 12)), to_column(('descricao', 12)),
to_column(('observacao', 12)), to_column(('observacao', 12)),

53
sapl/relatorios/tests.py

@ -1,3 +1,52 @@
# from django.test import TestCase import pytest
from model_bakery import baker
# Create your tests here. from sapl.base.models import CasaLegislativa
from sapl.relatorios.views import get_sessao_plenaria
from sapl.sessao.models import ExpedienteSessao, SessaoPlenaria, TipoExpediente
from sapl.sessao.views import get_expedientes
def cria_sessao_com_expedientes():
"""Cria uma sessão cujos expedientes têm `ordenacao` inversa à ordem
alfabética dos nomes -- o caso que expõe o OSTicket #125461."""
sessao = baker.make(SessaoPlenaria)
tipo_leitura = baker.make(
TipoExpediente, nome='Leitura e Aprovação da Ata', ordenacao=1)
tipo_grande = baker.make(
TipoExpediente, nome='Grande Expediente', ordenacao=2)
for tipo in (tipo_grande, tipo_leitura):
baker.make(ExpedienteSessao, sessao_plenaria=sessao, tipo=tipo,
conteudo='<p>Conteúdo de {}.</p>'.format(tipo.nome))
return sessao
@pytest.mark.django_db(transaction=False)
def test_relatorio_sessao_respeita_ordenacao_do_tipo_expediente():
"""O PDF da Sessão Plenária deve seguir o campo `ordenacao` de
TipoExpediente, e não a ordem alfabética do nome."""
sessao = cria_sessao_com_expedientes()
casa = baker.make(CasaLegislativa)
user = baker.make('auth.User')
lst_expedientes = get_sessao_plenaria(sessao, casa, user)[6]
nomes = [e['nom_expediente'] for e in lst_expedientes]
assert nomes == ['Leitura e Aprovação da Ata', 'Grande Expediente']
@pytest.mark.django_db(transaction=False)
def test_relatorio_sessao_tem_mesma_ordem_de_expedientes_do_resumo():
"""O PDF e o Resumo exibido em tela não podem divergir: foi essa
divergência que originou o OSTicket #125461."""
sessao = cria_sessao_com_expedientes()
casa = baker.make(CasaLegislativa)
user = baker.make('auth.User')
do_pdf = [e['nom_expediente']
for e in get_sessao_plenaria(sessao, casa, user)[6]]
da_tela = [e['tipo'].nome for e in get_expedientes(sessao)['expedientes']]
assert do_pdf == da_tela

4
sapl/relatorios/views.py

@ -609,8 +609,10 @@ def get_sessao_plenaria(sessao, casa, user):
# Exibe os Expedientes # Exibe os Expedientes
lst_expedientes = [] lst_expedientes = []
# A ordenação deve ser a mesma de sapl.sessao.views.get_expedientes, para
# que o PDF confira com o Resumo exibido em tela. OSTicket #125461
expedientes = ExpedienteSessao.objects.filter( expedientes = ExpedienteSessao.objects.filter(
sessao_plenaria=sessao).order_by('tipo__nome') sessao_plenaria=sessao).order_by('tipo__ordenacao', 'tipo__nome')
for e in expedientes: for e in expedientes:
conteudo = e.conteudo conteudo = e.conteudo
if not is_empty(conteudo): if not is_empty(conteudo):

3
sapl/utils.py

@ -611,6 +611,9 @@ TIPOS_TEXTO_PERMITIDOS = (
'text/pdf', 'text/pdf',
'text/x-pdf', 'text/x-pdf',
'text/plain', 'text/plain',
'text/csv',
'application/vnd.ms-excel',
'application/csv',
'application/txt', 'application/txt',
'browser/internal', 'browser/internal',
'text/anytext', 'text/anytext',

Loading…
Cancel
Save