ПРОБЛЕМА: - RegisterAPIView содержал ~30 строк LDAP-специфичной логики - DirectoryService, DirectoryUserDTO, обработка исключений - всё в основном методе - Нарушение принципа единственной ответственности - Сложность тестирования и переиспользования РЕШЕНИЕ: Создан api/v1/employees/views/mixins.py с миксинами: 1. LdapUserCreationMixin: - create_ldap_user() - создание пользователя в LDAP через DirectoryService - create_db_user() - создание пользователя напрямую в БД (fallback без LDAP) - Централизованная обработка DirectoryLdapError/DirectoryDbError - Возвращает (Employee, None) при успехе или (None, Response) при ошибке 2. LdapPasswordMixin: - update_ldap_password() - обновление пароля в LDAP - Подготовка для использования в PasswordChangeView и других endpoints ИЗМЕНЕНИЯ: - auth.py: RegisterAPIView использует LdapUserCreationMixin - Блок if ldap_enabled заменён на вызовы self.create_ldap_user() / self.create_db_user() - _helpers.py: удалён _is_ldap_enabled (перемещён в mixins.py) - Уменьшено количество строк в RegisterAPIView: ~190 → ~170 ПРЕИМУЩЕСТВА: - Чёткое разделение: общая логика регистрации vs LDAP-специфика - Переиспользование: миксины можно применить в других views - Тестируемость: можно мокать методы миксина - Читаемость: основной метод фокусируется на бизнес-логике Django check: успешно
Документация проекта EUSRR
Эта папка содержит всю документацию проекта, организованную по категориям.
📁 Структура
completed/
Завершенные задачи: рефакторинги, исправления, реализованные фичи (22 файла)
guides/
Активные руководства и инструкции для разработчиков (гайды по валидации, миграции, настройке)
architecture/
Архитектурная документация и анализ систем (рендеринг чата, архитектура страниц)
diagnostic/
Диагностические руководства (WebSocket 1006, отладка проблем)
in-progress/
Активные задачи в разработке (закупки, получатели заявок, календарь)
reports/
Отчеты и аудиты проекта (реорганизация документации, план очистки)
📝 Главная документация
- README.md - основная документация проекта
- docs/reports/ - отчеты и планы по проекту
🔍 Поиск информации
- Завершенные фичи →
completed/ - Как настроить X →
guides/ - Как работает Y →
architecture/ - Проблемы с Z →
diagnostic/ - Что в разработке →
in-progress/ - Отчеты и аудиты →
reports/
Description
Разработка — в develop; локальный CI работает через Git hooks и quality gates перед коммитом/пушем. После проверки — слияние в master. Push в master запускает blue-green деплой на CORP через Gitea Actions и Telegram-отчёт. Статус деплоя — «Действия».
https://corp.robotail.pro/
Readme
86 MiB
Languages
Python
47.6%
TypeScript
29.8%
JavaScript
15.7%
HTML
4.1%
SCSS
2.1%
Other
0.7%