diff --git a/backend/employees/apps.py b/backend/employees/apps.py index 37d2908b..08dfe5fa 100644 --- a/backend/employees/apps.py +++ b/backend/employees/apps.py @@ -6,9 +6,5 @@ class EmployeesConfig(AppConfig): name = 'employees' def ready(self): - import employees.signals - import employees.signals_birthday # Сигналы для синхронизации дней рождений с django-scheduler - import employees.signals_ldap # Сигналы для автоматической синхронизации Employee с LDAP - import employees.signals_department # Сигналы для автоматической синхронизации Department с LDAP - import employees.signals_group # Сигналы для автоматической синхронизации Group с LDAP - import employees.rules # django-rules: регистрация предикатов и правил доступа + import employees.signals # Все сигналы (common, birthday, ldap) + import employees.rules # django-rules: регистрация предикатов и правил доступа diff --git a/backend/employees/signals/__init__.py b/backend/employees/signals/__init__.py new file mode 100644 index 00000000..8630fb56 --- /dev/null +++ b/backend/employees/signals/__init__.py @@ -0,0 +1,15 @@ +"""Django signals для приложения employees. + +Структура: +- common: общие сигналы (создание кадровых событий, чаты отделов) +- birthday: синхронизация дней рождений с django-scheduler +- ldap/: автоматическая синхронизация с LDAP + - employee: Employee ↔ LDAP User + - department: Department ↔ LDAP OU + - group: Group ↔ LDAP Group +""" + +from . import common, birthday +from .ldap import employee, department, group + +__all__ = ['common', 'birthday', 'employee', 'department', 'group'] diff --git a/backend/employees/signals_birthday.py b/backend/employees/signals/birthday.py similarity index 93% rename from backend/employees/signals_birthday.py rename to backend/employees/signals/birthday.py index 2967de4b..de9444d6 100644 --- a/backend/employees/signals_birthday.py +++ b/backend/employees/signals/birthday.py @@ -1,6 +1,8 @@ -""" -Сигналы для автоматического управления событиями дней рождения в django-scheduler. +"""Django signals для автоматической синхронизации дней рождений с django-scheduler. + Использует Service Layer паттерн через django-service-objects. + +Файл: employees/signals/birthday.py """ from __future__ import annotations diff --git a/backend/employees/signals.py b/backend/employees/signals/common.py similarity index 95% rename from backend/employees/signals.py rename to backend/employees/signals/common.py index 4e454376..cfd34335 100644 --- a/backend/employees/signals.py +++ b/backend/employees/signals/common.py @@ -1,4 +1,11 @@ -# users/signals.py +# employees/signals/common.py +"""Общие Django signals для приложения employees. + +Обработчики: +- Создание кадровых событий (EmployeeAction) +- Создание главных чатов отделов +- Автоматизация из заявок (requests_app) +""" import logging import os @@ -10,9 +17,9 @@ from django.db.models import Q from django.db.models.signals import post_save, pre_save from django.dispatch import receiver from django.utils import timezone -from .constants import ACTION_HIRED -from .models import Employee, EmployeeAction, Department +from employees.constants import ACTION_HIRED +from employees.models import Employee, EmployeeAction, Department logger = logging.getLogger(__name__) diff --git a/backend/employees/signals/ldap/__init__.py b/backend/employees/signals/ldap/__init__.py new file mode 100644 index 00000000..ffdcdc32 --- /dev/null +++ b/backend/employees/signals/ldap/__init__.py @@ -0,0 +1,5 @@ +"""LDAP signals для автоматической синхронизации моделей с Active Directory.""" + +from . import employee, department, group + +__all__ = ['employee', 'department', 'group'] diff --git a/backend/employees/signals_department.py b/backend/employees/signals/ldap/department.py similarity index 98% rename from backend/employees/signals_department.py rename to backend/employees/signals/ldap/department.py index f1d57c48..1586ad1b 100644 --- a/backend/employees/signals_department.py +++ b/backend/employees/signals/ldap/department.py @@ -1,4 +1,7 @@ -"""Django signals для автоматической синхронизации Department с LDAP.""" +"""Django signals для автоматической синхронизации Department с LDAP. + +Файл: employees/signals/ldap/department.py +""" import logging diff --git a/backend/employees/signals_ldap.py b/backend/employees/signals/ldap/employee.py similarity index 98% rename from backend/employees/signals_ldap.py rename to backend/employees/signals/ldap/employee.py index 41697650..6484e43b 100644 --- a/backend/employees/signals_ldap.py +++ b/backend/employees/signals/ldap/employee.py @@ -1,4 +1,7 @@ -"""Django signals для автоматической синхронизации Employee с LDAP.""" +"""Django signals для автоматической синхронизации Employee с LDAP. + +Файл: employees/signals/ldap/employee.py +""" import logging diff --git a/backend/employees/signals_group.py b/backend/employees/signals/ldap/group.py similarity index 99% rename from backend/employees/signals_group.py rename to backend/employees/signals/ldap/group.py index d374d754..eb6cc1a6 100644 --- a/backend/employees/signals_group.py +++ b/backend/employees/signals/ldap/group.py @@ -1,4 +1,7 @@ -"""Django signals для автоматической синхронизации Group с LDAP.""" +"""Django signals для автоматической синхронизации Group с LDAP. + +Файл: employees/signals/ldap/group.py +""" import logging