- Delete legacy Comment models (feed.Comment, documents.DocumentComment, requests_app.RequestComment)
- Create migration scripts to move data to communications.Message
- Add comments_helpers.py for unified comment operations
- Update API endpoints: /api/v1/posts/{id}/comments/, /api/v1/requests/{id}/comments/
- Fix notifications.0010_drop_old_tables migration with SeparateDatabaseAndState
- Implement real-time comments_count via GenericForeignKey annotations
- Update frontend API client to use new endpoints
- Update JavaScript files for new comment API routes
- Remove deprecated API endpoints and serializers
- Clean up signal handlers and admin registrations
Deployment tested: all migrations apply successfully on fresh database
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
"""
|
|
Django signals для автоматической генерации уведомлений в модуле Feed.
|
|
|
|
Обрабатывает события:
|
|
- post_save для Post - создание новой публикации
|
|
"""
|
|
|
|
from django.db.models.signals import post_save
|
|
from django.dispatch import receiver
|
|
|
|
from ..models import Post
|
|
from .handlers import notify_new_post
|
|
|
|
|
|
@receiver(post_save, sender=Post)
|
|
def create_post_notification(sender, instance, created, **kwargs):
|
|
"""
|
|
Создает уведомления при создании новой публикации.
|
|
|
|
Уведомления отправляются в зависимости от типа:
|
|
- TYPE_COMPANY - всем сотрудникам
|
|
- TYPE_DEPARTMENT - сотрудникам отдела
|
|
- TYPE_EMPLOYEE - подписчикам автора (если реализовано)
|
|
"""
|
|
if not created:
|
|
return
|
|
|
|
# Отправляем уведомления через универсальную систему
|
|
# channels.py автоматически обработает через Celery
|
|
notify_new_post(instance)
|