From a8faa206f6302d9fa46829a26c05da9bfe3b2ff2 Mon Sep 17 00:00:00 2001 From: lokses Date: Sat, 25 Jul 2026 01:25:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=90=D0=B4=D0=BC=D0=B8=D0=BD=D0=BA=D0=B0:=20?= =?UTF-8?q?=D0=B3=D0=BE=D1=80=D0=B8=D0=B7=D0=BE=D0=BD=D1=82=D0=B0=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D1=8B=D0=B5=20=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80?= =?UTF-8?q?=D1=8B=20=D0=B2=20=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BE=D1=87?= =?UTF-8?q?=D0=BD=D0=B8=D0=BA=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Фильтры справочников (Directory, Системи доступу) вынесены из боковой панели наверх в тулбар (unfold list_filter_sheet=False), кастомные фильтры переведены на unfold DropdownFilter — выпадающие списки вместо списка ссылок. Co-Authored-By: Claude Opus 4.8 --- core/admin.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/admin.py b/core/admin.py index 93cae31..973f4f8 100644 --- a/core/admin.py +++ b/core/admin.py @@ -7,6 +7,7 @@ from django.utils.translation import gettext_lazy as _ from django.urls import reverse from unfold.admin import ModelAdmin from unfold.decorators import action +from unfold.contrib.filters.admin import DropdownFilter from treenode.forms import TreeNodeForm from django.forms import TextInput, Textarea from django.db.models import Count @@ -15,7 +16,7 @@ from import_export.admin import ImportExportModelAdmin from unfold.contrib.import_export.forms import ExportForm, ImportForm # Register your models here. -class DirectoryTypeFilter(SimpleListFilter): +class DirectoryTypeFilter(DropdownFilter): title = _('Тип справочника') parameter_name = 'directory_type' @@ -26,8 +27,8 @@ class DirectoryTypeFilter(SimpleListFilter): if self.value(): return queryset.filter(directory_type_id=self.value()) return queryset - -class ActiveFilter(SimpleListFilter): + +class ActiveFilter(DropdownFilter): title = _('Статус') parameter_name = 'is_active' @@ -134,6 +135,7 @@ class DirectoryAdmin(ModelAdmin, ImportExportModelAdmin): list_display = ['name_with_hierarchy', 'directory_type', 'code', 'is_active', 'updated_at'] list_display_links = ['name_with_hierarchy'] list_filter = [DirectoryTypeFilter, ActiveFilter] + list_filter_sheet = False # фильтры сверху горизонтально, а не в боковой панели ordering = ('_path',) actions_list = ['rebuild_tree_action'] @@ -225,7 +227,8 @@ class AccessSystemAdmin(ModelAdmin): """Отдельный раздел для списка систем/баз доступа (1С, почта, CRM…), которые выбираются чекбоксами в заявке на найм.""" list_display = ['name', 'code', 'is_active', 'updated_at'] - list_filter = ['is_active'] + list_filter = [ActiveFilter] + list_filter_sheet = False search_fields = ['name', 'code'] ordering = ['name'] fields = ['name', 'code', 'description', 'is_active']