refactor(employees): реорганизация структуры сигналов
ПРОБЛЕМЫ СТАРОЙ СТРУКТУРЫ:
- 5 файлов сигналов в корне employees/ (захламление)
- Непоследовательность: signals_ldap.py vs signals_department.py
- apps.py импортирует каждый файл явно (5 строк)
- Нет группировки по назначению (LDAP разбросан)
НОВАЯ СТРУКТУРА:
employees/
signals/
__init__.py # единая точка входа
common.py # общие сигналы (было signals.py)
birthday.py # дни рождений
ldap/
__init__.py
employee.py # Employee ↔ LDAP
department.py # Department ↔ LDAP OU
group.py # Group ↔ LDAP Group
ПРЕИМУЩЕСТВА:
- Чёткая иерархия: общие сигналы и LDAP-специфичные
- Единый импорт в apps.py: import employees.signals
- Понятные имена модулей (employee.py вместо signals_ldap.py)
- Масштабируемость: легко добавить signals/email/, signals/webhooks/ и т.д.
ИЗМЕНЕНИЯ:
- Создана структура signals/ и signals/ldap/
- Перемещены и переименованы 5 файлов сигналов
- Обновлены docstrings с новыми путями
- Исправлены относительные импорты в common.py
- apps.py: упрощён с 5 импортов до 1
- Django check: успешно
Git корректно распознал переименования (R), история сохранена.
This commit is contained in:
parent
df93afbcb1
commit
ee920dd365
@ -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: регистрация предикатов и правил доступа
|
||||
|
||||
15
backend/employees/signals/__init__.py
Normal file
15
backend/employees/signals/__init__.py
Normal file
@ -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']
|
||||
@ -1,6 +1,8 @@
|
||||
"""
|
||||
Сигналы для автоматического управления событиями дней рождения в django-scheduler.
|
||||
"""Django signals для автоматической синхронизации дней рождений с django-scheduler.
|
||||
|
||||
Использует Service Layer паттерн через django-service-objects.
|
||||
|
||||
Файл: employees/signals/birthday.py
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
@ -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__)
|
||||
|
||||
5
backend/employees/signals/ldap/__init__.py
Normal file
5
backend/employees/signals/ldap/__init__.py
Normal file
@ -0,0 +1,5 @@
|
||||
"""LDAP signals для автоматической синхронизации моделей с Active Directory."""
|
||||
|
||||
from . import employee, department, group
|
||||
|
||||
__all__ = ['employee', 'department', 'group']
|
||||
@ -1,4 +1,7 @@
|
||||
"""Django signals для автоматической синхронизации Department с LDAP."""
|
||||
"""Django signals для автоматической синхронизации Department с LDAP.
|
||||
|
||||
Файл: employees/signals/ldap/department.py
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
@ -1,4 +1,7 @@
|
||||
"""Django signals для автоматической синхронизации Employee с LDAP."""
|
||||
"""Django signals для автоматической синхронизации Employee с LDAP.
|
||||
|
||||
Файл: employees/signals/ldap/employee.py
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
@ -1,4 +1,7 @@
|
||||
"""Django signals для автоматической синхронизации Group с LDAP."""
|
||||
"""Django signals для автоматической синхронизации Group с LDAP.
|
||||
|
||||
Файл: employees/signals/ldap/group.py
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user