diff --git a/sapl/base/apps.py b/sapl/base/apps.py index c3af888b7..403d74bd1 100644 --- a/sapl/base/apps.py +++ b/sapl/base/apps.py @@ -7,3 +7,6 @@ class AppConfig(django.apps.AppConfig): name = 'sapl.base' label = 'base' verbose_name = _('Dados Básicos') + + def ready(self): + from sapl.base import receivers diff --git a/sapl/base/receivers.py b/sapl/base/receivers.py index 60094ab1f..cf493b57d 100644 --- a/sapl/base/receivers.py +++ b/sapl/base/receivers.py @@ -2,16 +2,19 @@ import inspect import logging from django.conf import settings +from django.contrib.contenttypes.models import ContentType from django.core import serializers -from django.db.models.signals import post_delete, post_save +from django.db.models.signals import post_delete, post_save,\ + post_migrate +from django.db.utils import DEFAULT_DB_ALIAS from django.dispatch import receiver from django.utils import timezone from sapl.base.email_utils import do_envia_email_tramitacao -from sapl.base.models import AuditLog +from sapl.base.models import AuditLog, TipoAutor, Autor from sapl.materia.models import Tramitacao from sapl.protocoloadm.models import TramitacaoAdministrativo -from sapl.utils import get_base_url +from sapl.utils import get_base_url, models_with_gr_for_model @receiver(post_save, sender=Tramitacao) @@ -48,8 +51,9 @@ def handle_tramitacao_signal(sender, **kwargs): tramitacao.unidade_tramitacao_destino) except Exception as e: logger.error(f'user={request.user.username}. Tramitação criada, mas e-mail de acompanhamento ' - 'de matéria não enviado. Há problemas na configuração ' - 'do e-mail. ' + str(e)) + 'de matéria não enviado. Há problemas na configuração ' + 'do e-mail. ' + str(e)) + @receiver(post_delete) def status_tramitacao_materia(sender, instance, **kwargs): @@ -133,3 +137,40 @@ def audit_log_post_delete(sender, **kwargs): def audit_log_post_save(sender, **kwargs): operation = 'C' if kwargs.get('created') else 'U' audit_log_function(sender, operation=operation, **kwargs) + + +def cria_models_tipo_autor(app_config=None, verbosity=2, interactive=True, + using=DEFAULT_DB_ALIAS, **kwargs): + + models = models_with_gr_for_model(Autor) + + print("\n\033[93m\033[1m{}\033[0m".format( + _('Atualizando registros TipoAutor do SAPL:'))) + for model in models: + content_type = ContentType.objects.get_for_model(model) + tipo_autor = TipoAutor.objects.filter( + content_type=content_type.id).exists() + + if tipo_autor: + msg1 = "Carga de {} não efetuada.".format( + TipoAutor._meta.verbose_name) + msg2 = " Já Existe um {} {} relacionado...".format( + TipoAutor._meta.verbose_name, + model._meta.verbose_name) + msg = " {}{}".format(msg1, msg2) + else: + novo_autor = TipoAutor() + novo_autor.content_type_id = content_type.id + novo_autor.descricao = model._meta.verbose_name + novo_autor.save() + msg1 = "Carga de {} efetuada.".format( + TipoAutor._meta.verbose_name) + msg2 = " {} {} criado...".format( + TipoAutor._meta.verbose_name, content_type.model) + msg = " {}{}".format(msg1, msg2) + print(msg) + # Disconecta função para evitar a chamada repetidas vezes. + post_migrate.disconnect(receiver=cria_models_tipo_autor) + + +post_migrate.connect(receiver=cria_models_tipo_autor) diff --git a/sapl/base/signals.py b/sapl/base/signals.py deleted file mode 100644 index c4841d030..000000000 --- a/sapl/base/signals.py +++ /dev/null @@ -1,45 +0,0 @@ -from django.contrib.contenttypes.models import ContentType -from django.db.models.signals import post_migrate -from django.db.utils import DEFAULT_DB_ALIAS -import django.dispatch - -from django.utils.translation import ugettext_lazy as _ -from sapl.base.models import Autor, TipoAutor -from sapl.utils import models_with_gr_for_model - - -def cria_models_tipo_autor(app_config=None, verbosity=2, interactive=True, - using=DEFAULT_DB_ALIAS, **kwargs): - - models = models_with_gr_for_model(Autor) - - print("\n\033[93m\033[1m{}\033[0m".format( - _('Atualizando registros TipoAutor do SAPL:'))) - for model in models: - content_type = ContentType.objects.get_for_model(model) - tipo_autor = TipoAutor.objects.filter( - content_type=content_type.id).exists() - - if tipo_autor: - msg1 = "Carga de {} não efetuada.".format( - TipoAutor._meta.verbose_name) - msg2 = " Já Existe um {} {} relacionado...".format( - TipoAutor._meta.verbose_name, - model._meta.verbose_name) - msg = " {}{}".format(msg1, msg2) - else: - novo_autor = TipoAutor() - novo_autor.content_type_id = content_type.id - novo_autor.descricao = model._meta.verbose_name - novo_autor.save() - msg1 = "Carga de {} efetuada.".format( - TipoAutor._meta.verbose_name) - msg2 = " {} {} criado...".format( - TipoAutor._meta.verbose_name, content_type.model) - msg = " {}{}".format(msg1, msg2) - print(msg) - # Disconecta função para evitar a chamada repetidas vezes. - post_migrate.disconnect(receiver=cria_models_tipo_autor) - - -post_migrate.connect(receiver=cria_models_tipo_autor) diff --git a/sapl/materia/apps.py b/sapl/materia/apps.py index 2cc3559ae..3ac053d1b 100644 --- a/sapl/materia/apps.py +++ b/sapl/materia/apps.py @@ -6,6 +6,3 @@ class AppConfig(apps.AppConfig): name = 'sapl.materia' label = 'materia' verbose_name = _('Matéria') - - def ready(self): - from sapl.base import receivers diff --git a/sapl/norma/signals.py b/sapl/norma/signals.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/sapl/protocoloadm/apps.py b/sapl/protocoloadm/apps.py index 98e28ea36..8697e58d9 100644 --- a/sapl/protocoloadm/apps.py +++ b/sapl/protocoloadm/apps.py @@ -6,6 +6,3 @@ class AppConfig(apps.AppConfig): name = 'sapl.protocoloadm' label = 'protocoloadm' verbose_name = _('Protocolo Administrativo') - - def ready(self): - from sapl.base import receivers