From d008d9dd0ff5cc0cef342d391335a402af77fd9b Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Tue, 1 Jul 2025 15:43:45 +0300 Subject: [PATCH] Features: 1) Remove custom `BaseAutocompleteFilter` and related admin filters to streamline list filtering; 2) Simplify `ProductAdmin` by eliminating unused autocomplete mixin and filters; Fixes: 1) Remove unused imports from `core/admin.py`; Extra: 1) Delete redundant `autocomplete_filter.html` template and associated filter classes for cleanup; 2) Minor refactoring of `ProductAdmin` class in alignment with the removal of filters. --- core/admin.py | 12 +---- core/filters.py | 44 ------------------- core/templates/admin/autocomplete_filter.html | 11 ----- 3 files changed, 1 insertion(+), 66 deletions(-) delete mode 100644 core/templates/admin/autocomplete_filter.html diff --git a/core/admin.py b/core/admin.py index e5cddae3..05115cd1 100644 --- a/core/admin.py +++ b/core/admin.py @@ -13,7 +13,6 @@ from mptt.admin import DraggableMPTTAdmin from evibes.settings import CONSTANCE_CONFIG -from .filters import BrandAdminFilter, CategoryAdminFilter, TagsAdminFilter, VendorAdminFilter from .forms import OrderForm, OrderProductForm, VendorForm from .models import ( Address, @@ -37,11 +36,6 @@ from .models import ( ) -class AutocompleteFilterMixin: - class Media: - js = ("admin/js/autocomplete.js",) - - class FieldsetsMixin: general_fields: list = [] relation_fields: list = [] @@ -236,7 +230,7 @@ class BrandAdmin(FieldsetsMixin, ActivationActionsMixin, ModelAdmin): @register(Product) -class ProductAdmin(FieldsetsMixin, ActivationActionsMixin, AutocompleteFilterMixin, ModelAdmin): +class ProductAdmin(FieldsetsMixin, ActivationActionsMixin, ModelAdmin): model = Product # type: ignore list_display = ( "name", @@ -251,10 +245,6 @@ class ProductAdmin(FieldsetsMixin, ActivationActionsMixin, AutocompleteFilterMix list_filter = ( "is_active", "is_digital", - BrandAdminFilter, - CategoryAdminFilter, - TagsAdminFilter, - VendorAdminFilter, "created", "modified", ) diff --git a/core/filters.py b/core/filters.py index a0298669..a79efa74 100644 --- a/core/filters.py +++ b/core/filters.py @@ -506,47 +506,3 @@ class AddressFilter(FilterSet): class Meta: model = Address fields = ["uuid", "user_uuid", "user_email", "order_by"] - - -class BaseAutocompleteFilter(SimpleListFilter): - template = "admin/autocomplete_filter.html" - - def lookups(self, request, model_admin): - return () - - def choices(self, changelist): - url = reverse( - f"admin:{changelist.opts.app_label}_{self.parameter_name}_autocomplete" - ) - current = changelist.params.get(self.parameter_name, "") - html = ( - f'' - ) - # noinspection DjangoSafeString - yield { - "display": mark_safe(html), - } - - -class BrandAdminFilter(BaseAutocompleteFilter): - title = _("By Brand") - parameter_name = "brand" - - -class CategoryAdminFilter(BaseAutocompleteFilter): - title = _("By Category") - parameter_name = "category" - - -class TagsAdminFilter(BaseAutocompleteFilter): - title = _("By Product tags") - parameter_name = "tags" - - -class VendorAdminFilter(BaseAutocompleteFilter): - title = _("By Associated vendor") - parameter_name = "stocks__vendor" diff --git a/core/templates/admin/autocomplete_filter.html b/core/templates/admin/autocomplete_filter.html deleted file mode 100644 index 2dbc753d..00000000 --- a/core/templates/admin/autocomplete_filter.html +++ /dev/null @@ -1,11 +0,0 @@ -{% comment %} -A custom filter template that -only cares about our `display` key. -{% endcomment %} - -
-

{{ spec.title }}

- {% for choice in spec.choices cl %} - {{ choice.display|safe }} - {% endfor %} -