igor_nadein 59b8f56c5a refactor(employees): simplify create() using ExternalSystemSyncMixin
Replaced 150+ lines of manual transaction management with mixin:

Before:
- Manual transaction.atomic()
- Manual LDAP sync calls
- Duplicate code for LDAP/non-LDAP modes
- Manual error handling and rollback
- ~150 lines of boilerplate

After:
- create() delegates to super() - миксин управляет всем
- perform_create() - только БД логика (30 lines)
- handle_external_sync_result() - обработка LDAP результата
- Миксин автоматически управляет транзакциями и откатами

Changes:
1. create(): simplified to validation + super().create()
2. perform_create(): creates Employee in DB, sets password/avatar/skills
3. prepare_external_data(): builds DTO with avatar_bytes, group_cns
4. handle_external_sync_result(): saves DN/GUID to LdapSyncState,
   sets employeeNumber, assigns position

5. ExternalSystemSyncMixin: added handle_external_sync_result() hook
   for custom post-sync actions

Code reduction: 150 lines -> 80 lines
Benefits: cleaner, DRYer, automatic error handling

manage.py check: no issues
2026-02-16 17:07:15 +03:00
..

Backend Documentation

Техническая документация по backend части проекта EUSRR.

📁 Структура

guides/

Руководства разработчика - инструкции по работе с различными модулями

  • CONTEXT_MENU_GUIDE.md - работа с контекстными меню
  • REACTIONS_GUIDE.md - система реакций

troubleshooting/

Отладка и исправления - диагностика проблем

  • CONTEXT_MENU_DEBUG.md - отладка контекстного меню
  • MESSAGE_DELETE_DEBUG.md - отладка удаления сообщений
  • MESSAGE_DELETE_FIX.md - исправление проблем удаления

architecture/

Архитектурная документация - устройство систем

  • API_ANALYSIS.md - анализ API
  • API_REFACTORING_SUMMARY.md - результаты рефакторинга API
  • VIEWSET_ANALYSIS.md - анализ ViewSet

testing/

Тестирование - планы и результаты тестирования

  • POSITION_PERMISSIONS_TESTING.md - тестирование прав должностей
  • REQUESTS_API_TESTING_PLAN.md - план тестирования API заявок
  • TEST_IMAGE_SCRIPTS.md - скрипты тестирования изображений

reports/

Отчеты и аудиты - результаты проверок и реорганизаций

  • BACKEND_CLEANUP_AUDIT.md - аудит очистки backend/
  • REQUESTS_API_TESTING_PLAN.md - план тестирования API заявок
  • TEST_IMAGE_SCRIPTS.md - скрипты тестирования изображений

🔍 Навигация

По типу задачи:

Связанная документация:

  • /docs/ - общая документация проекта
  • backend/scripts/ - вспомогательные скрипты

📝 Правила

Добавление новой документации:

  1. Guides - постоянные инструкции, reference материалы
  2. Troubleshooting - временные документы, после решения → удалить
  3. Architecture - долгосрочная документация, обновлять при изменениях
  4. Testing - планы тестирования, после завершения → архивировать

Формат файлов:

# Заголовок

**Дата:** DD.MM.YYYY  
**Автор:** Имя  
**Статус:** Актуально / Устарело / В процессе

## Описание
...

## Использование
...

## Примеры
...

🔄 Жизненный цикл

  1. Создание - документируйте новую фичу/проблему
  2. Актуализация - обновляйте при изменениях
  3. Архивация - после завершения/решения
  4. Удаление - если больше не актуально

Поддерживайте документацию актуальной! 📚