diff --git a/backend/employees/views_front.py b/backend/employees/views_front.py index 1a60d435..10333346 100644 --- a/backend/employees/views_front.py +++ b/backend/employees/views_front.py @@ -209,6 +209,15 @@ def employee_list(request): Для HTML страницы - данные загружаются через JavaScript на клиенте. """ + # Если параметр active отсутствует и это HTML-запрос, + # редиректим с active=true по умолчанию + if request.GET.get("format") != "json" and "active" not in request.GET: + params = request.GET.copy() + params["active"] = "true" + from django.http import QueryDict + query_string = params.urlencode() + return redirect(f"{request.path}?{query_string}") + api = get_api_client(request) # JSON-ветка для автокомплита diff --git a/backend/static/js/components/employeesList.js b/backend/static/js/components/employeesList.js index 24ec4f51..31ba9946 100644 --- a/backend/static/js/components/employeesList.js +++ b/backend/static/js/components/employeesList.js @@ -26,7 +26,8 @@ export class EmployeesList { search: urlParams.get('q') || '', department: urlParams.get('department') || '', position: urlParams.get('position') || '', - is_active: urlParams.get('is_active') || '' + // По умолчанию показываем только активных сотрудников + active: urlParams.get('active') !== null ? urlParams.get('active') : 'true' }; // Intersection Observer для бесконечной прокрутки diff --git a/backend/static/js/components/teamWheel.js b/backend/static/js/components/teamWheel.js index f522f5fe..24ae8841 100644 --- a/backend/static/js/components/teamWheel.js +++ b/backend/static/js/components/teamWheel.js @@ -67,14 +67,16 @@ export function initTeamWheel(options) { // Источник данных const src = document.getElementById(dataSourceId); - const members = Array.from(src ? src.children : []).map(n => ({ - id: Number(n.getAttribute('data-id') || '0'), - name: n.getAttribute('data-name') || '', - role: n.getAttribute('data-role') || '', - email: n.getAttribute('data-email') || '', - avatar: n.getAttribute('data-avatar') || '', - active: n.getAttribute('data-active') === '1' - })); + const members = Array.from(src ? src.children : []) + .map(n => ({ + id: Number(n.getAttribute('data-id') || '0'), + name: n.getAttribute('data-name') || '', + role: n.getAttribute('data-role') || '', + email: n.getAttribute('data-email') || '', + avatar: n.getAttribute('data-avatar') || '', + active: n.getAttribute('data-active') === '1' + })) + .filter(m => m.active); // Показываем только активных сотрудников // Если никого нет — показываем руководителя if (!members.length) { diff --git a/backend/templates/employees/_filters.html b/backend/templates/employees/_filters.html index 8b33c6fa..6eafcc16 100644 --- a/backend/templates/employees/_filters.html +++ b/backend/templates/employees/_filters.html @@ -25,10 +25,10 @@