Mudanza de repo
This commit is contained in:
0
api/notificaciones/signals/__init__.py
Normal file
0
api/notificaciones/signals/__init__.py
Normal file
34
api/notificaciones/signals/notificaciones.py
Normal file
34
api/notificaciones/signals/notificaciones.py
Normal file
@@ -0,0 +1,34 @@
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
|
||||
from api.notificaciones.models import Notificacion
|
||||
from api.record.models import Document
|
||||
|
||||
@receiver(post_save, sender=Document)
|
||||
def trigger_notificacion(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
from api.cuser.models import CustomUser
|
||||
from api.customs.models import Pedimento
|
||||
from api.notificaciones.models import TipoNotificacion
|
||||
|
||||
# Obtener el tipo de notificación (puedes ajustar el nombre si tienes tipos definidos)
|
||||
tipo_info, _ = TipoNotificacion.objects.get_or_create(tipo="info", defaults={"descripcion": "Notificación informativa"})
|
||||
|
||||
# Notificar a todos los usuarios de la organización
|
||||
usuarios_org = CustomUser.objects.filter(organizacion=instance.organizacion)
|
||||
for usuario in usuarios_org:
|
||||
# Notificar solo a importadores cuyo RFC coincide
|
||||
if (usuario.is_importador or usuario.groups.filter(name='Importador').exists()):
|
||||
if usuario.rfc == instance.pedimento.contribuyente:
|
||||
Notificacion.objects.create(
|
||||
tipo=tipo_info,
|
||||
dirigido=usuario,
|
||||
mensaje=f"Se agregó el documento {instance.archivo} al pedimento {instance.pedimento.pedimento} \n {instance.document_type.nombre}",
|
||||
)
|
||||
# Notificar a otros roles (no importadores)
|
||||
elif (usuario.is_superuser or usuario.groups.filter(name='Agente Aduanal').exists() or usuario.groups.filter(name='admin').exists()):
|
||||
Notificacion.objects.create(
|
||||
tipo=tipo_info,
|
||||
dirigido=usuario,
|
||||
mensaje=f"Se agregó el documento {instance.archivo} al pedimento {instance.pedimento.pedimento} \n {instance.document_type.nombre}",
|
||||
)
|
||||
Reference in New Issue
Block a user