From d5cbedbcb205a0379f9dfa315e26abe835f5e819 Mon Sep 17 00:00:00 2001 From: Leandro Roberto Date: Sun, 26 Aug 2018 22:28:01 -0300 Subject: [PATCH] =?UTF-8?q?corrige=20erros=20de=20teste=20e=20add=20expres?= =?UTF-8?q?s=C3=A3o=20em=20rules?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/protocoloadm/tests/test_protocoloadm.py | 5 +- sapl/rules/map_rules.py | 45 ++++++------- sapl/rules/tests/test_rules.py | 22 ++++--- sapl/translation.py | 68 +++----------------- 4 files changed, 50 insertions(+), 90 deletions(-) diff --git a/sapl/protocoloadm/tests/test_protocoloadm.py b/sapl/protocoloadm/tests/test_protocoloadm.py index f74c4dd7b..e6770e8d6 100644 --- a/sapl/protocoloadm/tests/test_protocoloadm.py +++ b/sapl/protocoloadm/tests/test_protocoloadm.py @@ -1,10 +1,11 @@ from datetime import date, timedelta -import pytest from django.core.urlresolvers import reverse +from django.utils import timezone from django.utils.encoding import force_text from django.utils.translation import ugettext_lazy as _ from model_mommy import mommy +import pytest from sapl.materia.models import UnidadeTramitacao from sapl.protocoloadm.forms import (AnularProcoloAdmForm, @@ -191,7 +192,7 @@ def test_create_tramitacao(admin_client): 'unidade_tramitacao_destino': unidade_tramitacao_destino_2.pk, 'documento': documento_adm.pk, 'status': status.pk, - 'data_tramitacao': date.today() + timedelta( + 'data_tramitacao': timezone.now().date() + timedelta( days=1)}, follow=True) diff --git a/sapl/rules/map_rules.py b/sapl/rules/map_rules.py index bba114149..d2b2b873b 100644 --- a/sapl/rules/map_rules.py +++ b/sapl/rules/map_rules.py @@ -1,23 +1,3 @@ -from sapl.base import models as base -from sapl.comissoes import models as comissoes -from sapl.compilacao import models as compilacao -from sapl.lexml import models as lexml -from sapl.materia import models as materia -from sapl.norma import models as norma -from sapl.painel import models as painel -from sapl.parlamentares import models as parlamentares -from sapl.protocoloadm import models as protocoloadm -from sapl.audiencia import models as audiencia -from sapl.rules import (RP_ADD, RP_CHANGE, RP_DELETE, RP_DETAIL, RP_LIST, - SAPL_GROUP_ADMINISTRATIVO, SAPL_GROUP_ANONYMOUS, - SAPL_GROUP_AUTOR, SAPL_GROUP_COMISSOES, - SAPL_GROUP_GERAL, SAPL_GROUP_LOGIN_SOCIAL, - SAPL_GROUP_MATERIA, SAPL_GROUP_NORMA, - SAPL_GROUP_PAINEL, SAPL_GROUP_PARLAMENTAR, - SAPL_GROUP_PROTOCOLO, SAPL_GROUP_SESSAO, - SAPL_GROUP_VOTANTE) -from sapl.sessao import models as sessao - """ Todas as permissões do django framework seguem o padrão @@ -46,6 +26,26 @@ negócio trabalham com os cinco radiais de permissão e com qualquer outro tipo de permissão customizada, nesta ordem de precedência. """ +from sapl.audiencia import models as audiencia +from sapl.base import models as base +from sapl.comissoes import models as comissoes +from sapl.compilacao import models as compilacao +from sapl.lexml import models as lexml +from sapl.materia import models as materia +from sapl.norma import models as norma +from sapl.painel import models as painel +from sapl.parlamentares import models as parlamentares +from sapl.protocoloadm import models as protocoloadm +from sapl.rules import (RP_ADD, RP_CHANGE, RP_DELETE, RP_DETAIL, RP_LIST, + SAPL_GROUP_ADMINISTRATIVO, SAPL_GROUP_ANONYMOUS, + SAPL_GROUP_AUTOR, SAPL_GROUP_COMISSOES, + SAPL_GROUP_GERAL, SAPL_GROUP_LOGIN_SOCIAL, + SAPL_GROUP_MATERIA, SAPL_GROUP_NORMA, + SAPL_GROUP_PAINEL, SAPL_GROUP_PARLAMENTAR, + SAPL_GROUP_PROTOCOLO, SAPL_GROUP_SESSAO, + SAPL_GROUP_VOTANTE) +from sapl.sessao import models as sessao + __base__ = [RP_LIST, RP_DETAIL, RP_ADD, RP_CHANGE, RP_DELETE] __listdetailchange__ = [RP_LIST, RP_DETAIL, RP_CHANGE] @@ -211,6 +211,7 @@ rules_group_geral = { (base.CasaLegislativa, __listdetailchange__ + [RP_ADD]), (base.TipoAutor, __base__), (base.Autor, __base__), + (base.ExpressaoTextual, []), (protocoloadm.StatusTramitacaoAdministrativo, __base__), (protocoloadm.TipoDocumentoAdministrativo, __base__), @@ -219,8 +220,8 @@ rules_group_geral = { (comissoes.TipoComissao, __base__), (comissoes.Periodo, __base__), - (materia.AssuntoMateria, __base__), # não há implementação - (materia.MateriaAssunto, __base__), # não há implementação + (materia.AssuntoMateria, __base__), + (materia.MateriaAssunto, __base__), (materia.MateriaLegislativa, ['can_access_impressos']), (materia.TipoProposicao, __base__), (materia.TipoMateriaLegislativa, __base__), diff --git a/sapl/rules/tests/test_rules.py b/sapl/rules/tests/test_rules.py index 10b03797f..f13de9e08 100644 --- a/sapl/rules/tests/test_rules.py +++ b/sapl/rules/tests/test_rules.py @@ -1,22 +1,23 @@ -import pytest from django.apps import apps from django.conf import settings from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.utils import six -from sapl.translation import ugettext_lazy as _ +import pytest -from sapl.base.models import CasaLegislativa +from sapl.base.models import CasaLegislativa, ExpressaoTextual from sapl.compilacao.models import (PerfilEstruturalTextoArticulado, TipoDispositivo, TipoDispositivoRelationship) from sapl.materia.models import AcompanhamentoMateria from sapl.rules import SAPL_GROUPS, map_rules from sapl.test_urls import create_perms_post_migrate +from sapl.translation import ugettext_lazy as _ from scripts.lista_permissions_in_decorators import \ lista_permissions_in_decorators from scripts.lista_urls import lista_urls + sapl_appconfs = [apps.get_app_config(n[5:]) for n in settings.SAPL_APPS] sapl_models = [] @@ -58,27 +59,32 @@ __fp__in__test_permission_of_models_in_rules_patterns = { map_rules.RP_ADD: [CasaLegislativa, TipoDispositivo, TipoDispositivoRelationship, - PerfilEstruturalTextoArticulado], + PerfilEstruturalTextoArticulado, + ExpressaoTextual], map_rules.RP_CHANGE: [AcompanhamentoMateria, TipoDispositivo, TipoDispositivoRelationship, - PerfilEstruturalTextoArticulado], + PerfilEstruturalTextoArticulado, + ExpressaoTextual], map_rules.RP_DELETE: [CasaLegislativa, TipoDispositivo, TipoDispositivoRelationship, - PerfilEstruturalTextoArticulado], + PerfilEstruturalTextoArticulado, + ExpressaoTextual], map_rules.RP_LIST: [AcompanhamentoMateria, TipoDispositivo, TipoDispositivoRelationship, - PerfilEstruturalTextoArticulado], + PerfilEstruturalTextoArticulado, + ExpressaoTextual], map_rules.RP_DETAIL: [AcompanhamentoMateria, TipoDispositivo, TipoDispositivoRelationship, - PerfilEstruturalTextoArticulado] + PerfilEstruturalTextoArticulado, + ExpressaoTextual] } diff --git a/sapl/translation.py b/sapl/translation.py index 218d1dfd0..264f34dbb 100644 --- a/sapl/translation.py +++ b/sapl/translation.py @@ -75,8 +75,11 @@ class ExpressaoTextualManage(object): 'proxy': [value, ], 'value': text, 'custom': None} - et = ExpressaoTextual(value=text, bind=True) - et.save() + try: + et = ExpressaoTextual(value=text, bind=True) + et.save() + except: + pass self.__catalog['preprocess'] = [] @@ -94,8 +97,11 @@ class ExpressaoTextualManage(object): 'proxy': [item, ], 'value': text, 'custom': None} - et = ExpressaoTextual(value=text, bind=True) - et.save() + try: + et = ExpressaoTextual(value=text, bind=True) + et.save() + except: + pass else: try: @@ -168,60 +174,6 @@ class ExpressaoTextualManage(object): ExpressaoTextual.objects.filter(bind=False).delete() -""" - if sys.argv[1] == 'makemigrations': - return - # apps.apps.get_app_config('base').ready() - ExpressaoTextual = apps.apps.get_app_config( - 'base').get_model('ExpressaoTextual') - - try: - # modelo não existe no momento do migrate - ExpressaoTextual.objects.update(bind=False) - except: - return - - expressoes = ExpressaoTextual.objects.all() - - for app in apps.apps.get_app_configs(): - if app.name not in settings.SAPL_APPS or app == self: - continue - - for m in app.get_models(): - try: - exp = expressoes.get(value=m._meta.verbose_name) - except: - exp = ExpressaoTextual( - value=m._meta.verbose_name, custom='') - exp.bind = True - exp.save() - if exp.custom: - m._meta.verbose_name = exp.custom - - try: - exp = expressoes.get(value=m._meta.verbose_name_plural) - except: - exp = ExpressaoTextual( - value=m._meta.verbose_name_plural, custom='') - exp.bind = True - exp.save() - if exp.custom: - m._meta.verbose_name_plural = exp.custom - - for f in m._meta.fields: - try: - exp = expressoes.get(value=f.verbose_name) - except: - exp = ExpressaoTextual( - value=f.verbose_name, custom='') - exp.bind = True - exp.save() - if exp.custom: - f.verbose_name = exp.custom - - ExpressaoTextual.objects.filter(bind=False).delete() -""" - sapl_expressions = ExpressaoTextualManage()