Files
MathApp/support/receivers.py

29 lines
1.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
اعلانِ «پاسخِ تازه برای تیکتت» با هر پیامِ پشتیبانی، از هر مسیری که ذخیره شود.
تا ۲۰۲۶-۱۰-۰۳ اعلان فقط در `TicketMessageAdmin.save_model` ساخته می‌شد. پشتیبان معمولاً از
صفحه‌ی خودِ تیکت (inline) جواب می‌دهد و آن مسیر از `TicketAdmin` رد می‌شود؛ پیام ثبت می‌شد و
کاربر هیچ اعلانی نمی‌گرفت (بازتولید شد). سیگنال روی خودِ مدل هر دو مسیر را می‌گیرد.
اعلان داخلِ همان تراکنشِ ذخیره‌ی پیام نوشته می‌شود؛ شکستش ذخیره‌ی پیام را هم برمی‌گرداند.
"""
from django.db.models.signals import post_save
from django.dispatch import receiver
from .models import TicketMessage
@receiver(post_save, sender=TicketMessage, dispatch_uid='support_notify_ticket_reply')
def _notify_ticket_reply(sender, instance, created, raw=False, **kwargs):
# raw=True: loaddata (انتقال به Postgres)؛ اعلانِ آن پیام‌ها خودش در فایل است و اینجا دوباره ساخته می‌شد.
if raw or not created or instance.sender != 'support':
return
from notifications.services import notify
notify(
user_id=instance.ticket.user_id,
type='ticket_replied',
title='پاسخ جدید برای تیکت شما',
body=instance.text[:200],
related_id=instance.ticket_id,
)