Добавлены фильтры для списка клиентов через django-filter

- Создан CustomerFilter с тремя фильтрами:
  * Есть заметки (has_notes)
  * Нет телефона (no_phone)
  * Нет email (no_email)

- Обновлен views.py для использования фильтров
- Добавлены чекбоксы фильтров в шаблон списка клиентов
- Фильтры работают совместно с поиском
- Кнопка Очистить отображается при активных фильтрах или поиске
This commit is contained in:
2026-01-03 14:50:24 +03:00
parent 63a965ae5c
commit 5ded404346
3 changed files with 101 additions and 7 deletions

View File

@@ -27,21 +27,48 @@
</div>
</div>
<!-- Поиск -->
<!-- Поиск и фильтры -->
<div class="card mb-3">
<div class="card-body">
<form method="get" class="row g-2">
<div class="col-md-8">
<form method="get" class="row g-3">
<!-- Поиск -->
<div class="col-md-6">
<input type="text" class="form-control" name="q" value="{{ query }}"
placeholder="Поиск по имени, email или телефону..."
autofocus>
</div>
<div class="col-md-4">
<div class="btn-group w-100" role="group">
<!-- Фильтры -->
<div class="col-md-6">
<div class="d-flex gap-3 align-items-center">
<div class="form-check">
{{ filter.form.has_notes }}
<label class="form-check-label" for="{{ filter.form.has_notes.id_for_label }}">
Есть заметки
</label>
</div>
<div class="form-check">
{{ filter.form.no_phone }}
<label class="form-check-label" for="{{ filter.form.no_phone.id_for_label }}">
Нет телефона
</label>
</div>
<div class="form-check">
{{ filter.form.no_email }}
<label class="form-check-label" for="{{ filter.form.no_email.id_for_label }}">
Нет email
</label>
</div>
</div>
</div>
<!-- Кнопки -->
<div class="col-12">
<div class="btn-group" role="group">
<button type="submit" class="btn btn-primary">
<i class="bi bi-search"></i> Поиск
<i class="bi bi-search"></i> Поиск / Фильтр
</button>
{% if query %}
{% if query or filter.form.has_notes.value or filter.form.no_phone.value or filter.form.no_email.value %}
<a href="{% url 'customers:customer-list' %}" class="btn btn-outline-secondary">
<i class="bi bi-x-circle"></i> Очистить
</a>