From 4082d496236113d70ad384b12f2a65a71272fffb Mon Sep 17 00:00:00 2001 From: Eliseu Egewarth Date: Fri, 10 Nov 2017 17:13:21 -0200 Subject: [PATCH] Fix #1587 Adiciona pre popula TipoAutor Signed-off-by: Eliseu Egewarth --- sapl/base/models.py | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/sapl/base/models.py b/sapl/base/models.py index 29c0fa1cc..b1edf8b64 100644 --- a/sapl/base/models.py +++ b/sapl/base/models.py @@ -2,9 +2,16 @@ import reversion from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.models import ContentType from django.db import models +from django.db.models.signals import post_migrate +from django.db.utils import DEFAULT_DB_ALIAS from django.utils.translation import ugettext_lazy as _ -from sapl.utils import UF, YES_NO_CHOICES, get_settings_auth_user_model +from sapl.utils import ( + UF, + YES_NO_CHOICES, + get_settings_auth_user_model, + models_with_gr_for_model + ) TIPO_DOCUMENTO_ADMINISTRATIVO = (('O', _('Ostensivo')), ('R', _('Restritivo'))) @@ -247,3 +254,39 @@ class Autor(models.Model): return str(self.partido) else: """ + + +def cria_models_tipo_autor(app_config, 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)