Browse Source

1664 fix numeracao materia legislativa (#1726)

* Fix #1714

* Fixes #1718

* Fix #1718

* Progress

* Fix #1664

* Fix #1664

* Fix #1664
pull/1728/head
Talitha Pumar 7 years ago
committed by Edward
parent
commit
f3d1a9925a
  1. 2
      sapl/materia/forms.py
  2. 75
      sapl/materia/tests/test_materia.py
  3. 2
      sapl/materia/urls.py
  4. 6
      sapl/materia/views.py

2
sapl/materia/forms.py

@ -1575,7 +1575,7 @@ class ConfirmarProposicaoForm(ProposicaoForm):
except AttributeError: except AttributeError:
pass pass
tipo = proposicao.tipo.tipo_conteudo_related tipo = self.instance.tipo.tipo_conteudo_related
if tipo.sequencia_numeracao: if tipo.sequencia_numeracao:
numeracao = tipo.sequencia_numeracao numeracao = tipo.sequencia_numeracao

75
sapl/materia/tests/test_materia.py

@ -1,10 +1,12 @@
import pytest import pytest
from django.db.models import Max
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.files.uploadedfile import SimpleUploadedFile from django.core.files.uploadedfile import SimpleUploadedFile
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from model_mommy import mommy from model_mommy import mommy
from sapl.base.models import Autor, TipoAutor from sapl.base.models import Autor, TipoAutor
from sapl.parlamentares.models import Legislatura
from sapl.comissoes.models import Comissao, TipoComissao from sapl.comissoes.models import Comissao, TipoComissao
from sapl.materia.models import (Anexada, Autoria, DespachoInicial, from sapl.materia.models import (Anexada, Autoria, DespachoInicial,
DocumentoAcessorio, MateriaLegislativa, DocumentoAcessorio, MateriaLegislativa,
@ -505,3 +507,76 @@ def test_form_errors_proposicao(admin_client):
['Este campo é obrigatório.']) ['Este campo é obrigatório.'])
assert (response.context_data['form'].errors['descricao'] == assert (response.context_data['form'].errors['descricao'] ==
['Este campo é obrigatório.']) ['Este campo é obrigatório.'])
@pytest.mark.django_db(transaction=False)
def test_numeracao_materia_legislativa_por_legislatura(admin_client):
#Criar Legislaturas
legislatura1 = mommy.make(Legislatura,
data_inicio='2014-01-01',
data_fim='2018-12-31',
numero=20,
data_eleicao='2013-10-15'
)
legislatura2 = mommy.make(Legislatura,
data_inicio='2009-01-01',
data_fim='2013-12-31',
numero=21,
data_eleicao='2018-10-15'
)
# Cria uma materia na legislatura1
tipo_materia = mommy.make(TipoMateriaLegislativa, id=1,sequencia_numeracao='L')
materia = mommy.make(MateriaLegislativa,
tipo=tipo_materia,
ano=2017,
numero=1
)
url = reverse('sapl.materia:recuperar_materia')
# Testa numeração do Materia Legislativa na Legislatura1
query_params = '?tipo={}&ano={}'.format(materia.tipo.id, materia.ano)
response = admin_client.get(url + query_params, follow=True)
response_content = eval(response.content.decode('ascii'))
esperado_legislatura1 = eval('{"numero": 2, "ano": "2017"}')
assert response_content['numero'] == esperado_legislatura1['numero']
# Testa numeração do Materia Legislativa na Legislatura2
query_params = '?tipo={}&ano={}'.format(1, '2010')
response = admin_client.get(url + query_params, follow=True)
response_content = eval(response.content.decode('ascii'))
esperado_legislatura2 = eval('{"ano": "2010", "numero": 1}')
assert response_content['numero'] == esperado_legislatura2['numero']
@pytest.mark.django_db(transaction=False)
def test_numeracao_materia_legislativa_por_ano(admin_client):
# Cria uma materia
tipo_materia = mommy.make(TipoMateriaLegislativa, id=1,sequencia_numeracao='A')
materia = mommy.make(MateriaLegislativa,
tipo=tipo_materia,
ano=2017,
numero=1
)
url = reverse('sapl.materia:recuperar_materia')
# Testa numeração da Materia Legislativa no ano da materia criada
query_params = '?tipo={}&ano={}'.format(materia.tipo.id, materia.ano)
response = admin_client.get(url + query_params, follow=True)
response_content = eval(response.content.decode('ascii'))
esperado_ano = eval('{"numero": 2, "ano": "2017"}')
assert response_content['numero'] == esperado_ano['numero']
# Testa numeração da Materia Legislativa de outro ano
query_params = '?tipo={}&ano={}'.format(1, '2010')
response = admin_client.get(url + query_params, follow=True)
response_content = eval(response.content.decode('ascii'))
esperado_outro_ano = eval('{"ano": "2010", "numero": 1}')
assert response_content['numero'] == esperado_outro_ano['numero']

2
sapl/materia/urls.py

@ -62,7 +62,7 @@ urlpatterns_materia = [
url(r'^materia/(?P<pk>[0-9]+)/create_simplificado$', url(r'^materia/(?P<pk>[0-9]+)/create_simplificado$',
CriarProtocoloMateriaView.as_view(), CriarProtocoloMateriaView.as_view(),
name='materia_create_simplificado'), name='materia_create_simplificado'),
url(r'^materia/recuperar-materia', recuperar_materia), url(r'^materia/recuperar-materia',recuperar_materia, name='recuperar_materia'),
url(r'^materia/(?P<pk>[0-9]+)/ta$', url(r'^materia/(?P<pk>[0-9]+)/ta$',
MateriaTaView.as_view(), name='materia_ta'), MateriaTaView.as_view(), name='materia_ta'),

6
sapl/materia/views.py

@ -295,9 +295,11 @@ def recuperar_materia(request):
if numeracao == 'A': if numeracao == 'A':
numero = MateriaLegislativa.objects.filter( numero = MateriaLegislativa.objects.filter(
ano=timezone.now().year).aggregate(Max('numero')) ano=ano).aggregate(Max('numero'))
elif numeracao == 'L': elif numeracao == 'L':
legislatura = Legislatura.objects.first() legislatura = Legislatura.objects.filter(
data_inicio__year__lte=ano,
data_fim__year__gte=ano).first()
data_inicio = legislatura.data_inicio data_inicio = legislatura.data_inicio
data_fim = legislatura.data_fim data_fim = legislatura.data_fim
numero = MateriaLegislativa.objects.filter( numero = MateriaLegislativa.objects.filter(

Loading…
Cancel
Save