- Создана папка backend/procurement/notifications/ вместо одного signals.py - Разделена логика на специализированные модули: * config.py - типы уведомлений (verbs) и шаблоны сообщений * handlers.py - бизнес-логика отправки уведомлений * signals.py - только Django сигналы * websocket.py - WebSocket broadcast для real-time обновлений * __init__.py - публичный API модуля Преимущества новой структуры: - ✅ Четкое разделение ответственности (SRP) - ✅ WebSocket логика отделена от уведомлений - ✅ Все шаблоны сообщений в одном месте (MessageTemplates) - ✅ Константы verbs централизованы (NotificationVerbs) - ✅ Легче тестировать и расширять - ✅ Обратная совместимость через __init__.py Изменения: - Удален: signals.py (сохранен как .old для истории) - Добавлен: notifications/ модуль с 5 файлами - Обновлен: apps.py (новый импорт сигналов)
14 lines
553 B
Python
14 lines
553 B
Python
from django.apps import AppConfig
|
|
|
|
|
|
class ProcurementConfig(AppConfig):
|
|
default_auto_field = 'django.db.models.BigAutoField'
|
|
name = 'procurement'
|
|
verbose_name = 'Закупки и инвентаризация'
|
|
|
|
def ready(self):
|
|
"""Подключение сигналов при загрузке приложения."""
|
|
import procurement.notifications.signals # noqa: F401
|
|
# django-rules: регистрация предикатов и правил доступа
|
|
import procurement.rules # noqa: F401
|