mirror of https://github.com/interlegis/sapl.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
2.0 KiB
51 lines
2.0 KiB
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
|
|
|
|
|
|
tramitacao_signal = django.dispatch.Signal(providing_args=['post', 'request'])
|
|
|
|
|
|
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)
|
|
post_delete_signal = django.dispatch.Signal(providing_args=['instance', 'request'])
|
|
|
|
post_save_signal = django.dispatch.Signal(providing_args=['instance', 'operation', 'request'])
|
|
|