Добавлены фильтры для списка клиентов через django-filter
- Создан CustomerFilter с тремя фильтрами: * Есть заметки (has_notes) * Нет телефона (no_phone) * Нет email (no_email) - Обновлен views.py для использования фильтров - Добавлены чекбоксы фильтров в шаблон списка клиентов - Фильтры работают совместно с поиском - Кнопка Очистить отображается при активных фильтрах или поиске
This commit is contained in:
@@ -13,6 +13,7 @@ import json
|
||||
from decimal import Decimal
|
||||
from .models import Customer, ContactChannel
|
||||
from .forms import CustomerForm, ContactChannelForm
|
||||
from .filters import CustomerFilter
|
||||
|
||||
|
||||
def normalize_query_phone(q):
|
||||
@@ -33,6 +34,10 @@ def customer_list(request):
|
||||
# Исключаем системного клиента из списка
|
||||
customers = Customer.objects.filter(is_system_customer=False)
|
||||
|
||||
# Применяем фильтры django-filter
|
||||
customer_filter = CustomerFilter(request.GET, queryset=customers)
|
||||
customers = customer_filter.qs
|
||||
|
||||
if query:
|
||||
# Нормализуем номер телефона
|
||||
phone_normalized = normalize_query_phone(query)
|
||||
@@ -79,6 +84,7 @@ def customer_list(request):
|
||||
'page_obj': page_obj,
|
||||
'query': query,
|
||||
'total_customers': paginator.count, # Используем count из paginator, чтобы избежать дублирования SQL запроса
|
||||
'filter': customer_filter, # Добавляем фильтр в контекст
|
||||
}
|
||||
return render(request, 'customers/customer_list.html', context)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user