Files
octopus/myproject/customers
Andrey Smakotin 96aa0b2f7f Устранение дублирования логики поиска между customer_list() и api_search_customers()
Проблема: Было две разных реализации логики поиска:
- customer_list() использовала простой icontains везде
- api_search_customers() использовала новую smart-логику с determine_search_strategy()

Решение:
1. Создана функция build_customer_search_query() которая строит Q-объект
   на основе стратегии поиска

2. Обновлена customer_list() чтобы использовать:
   - determine_search_strategy() для определения стратегии
   - build_customer_search_query() для построения Q-объекта

3. Обновлена api_search_customers() чтобы использовать
   build_customer_search_query() вместо дублирования логики

Результат: ЕДИНАЯ логика поиска везде ✓

Архитектура:
1. normalize_query_phone() — нормализация номеров телефонов
2. determine_search_strategy() — определение стратегии поиска
3. build_customer_search_query() — построение Q-объекта ← NEW
4. customer_list() — используется в веб-интерфейсе списка клиентов
5. api_search_customers() — используется в AJAX для Select2

Все 23 unit-теста проходят успешно ✓

Преимущества:
- Единая логика поиска во всем приложении
- Легче поддерживать и расширять
- Новая функция можно переиспользовать в других местах
- Меньше дублирования кода

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 00:52:12 +03:00
..