From e6d59f053ca2424a33412fe4612dffb4f749a6ff Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Tue, 24 Jun 2025 17:12:21 +0300 Subject: [PATCH] Features: 1) Add `is_active` field to `general_fields` across all admin configurations; 2) Modify method definitions in `BasicModelAdmin` to utilize `request` parameter; Fixes: 1) Correct method parameters for activation/deactivation actions in `BasicModelAdmin`; Extra: 1) Improve formatting of `general_fields` lists for readability. --- core/admin.py | 60 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/core/admin.py b/core/admin.py index 589cecc8..34f2be6c 100644 --- a/core/admin.py +++ b/core/admin.py @@ -81,12 +81,16 @@ class FieldsetsMixin: class BasicModelAdmin(ModelAdmin): @admin.action(description=str(_("activate selected %(verbose_name_plural)s"))) - def activate_selected(self, _request, queryset) -> str: + def activate_selected(self, request, queryset) -> str: + if request: + pass queryset.update(is_active=True) return str(_("%(verbose_name_plural)s activated successfully!")) @admin.action(description=str(_("deactivate selected %(verbose_name_plural)s"))) - def deactivate_selected(self, _request, queryset) -> str: + def deactivate_selected(self, request, queryset) -> str: + if request: + pass queryset.update(is_active=False) return str(_("%(verbose_name_plural)s deactivated successfully.")) @@ -170,7 +174,7 @@ class AttributeGroupAdmin(FieldsetsMixin, BasicModelAdmin): search_fields = ("uuid", "name") readonly_fields = ("uuid", "modified", "created") - general_fields = ["name", "parent"] + general_fields = ["is_active", "name", "parent"] relation_fields = [] @@ -183,7 +187,7 @@ class AttributeAdmin(FieldsetsMixin, BasicModelAdmin): readonly_fields = ("uuid", "modified", "created") autocomplete_fields = ["categories", "group"] - general_fields = ["name", "value_type"] + general_fields = ["is_active", "name", "value_type"] relation_fields = ["group", "categories"] @@ -196,7 +200,7 @@ class AttributeValueAdmin(FieldsetsMixin, BasicModelAdmin): readonly_fields = ("uuid", "modified", "created") autocomplete_fields = ["attribute"] - general_fields = ["value"] + general_fields = ["is_active", "value"] relation_fields = ["attribute", "product"] @@ -210,7 +214,7 @@ class CategoryAdmin(FieldsetsMixin, DraggableMPTTAdmin, BasicModelAdmin): autocomplete_fields = ["parent", "tags"] readonly_fields = ("slug", "uuid", "modified", "created") - general_fields = ["name", "description", "image", "markup_percent"] + general_fields = ["is_active", "name", "description", "image", "markup_percent"] relation_fields = ["parent", "tags"] @@ -222,7 +226,7 @@ class BrandAdmin(FieldsetsMixin, BasicModelAdmin): search_fields = ("uuid", "name", "categories__name") readonly_fields = ("uuid", "modified", "created") - general_fields = ["name", "description"] + general_fields = ["is_active", "name", "description"] relation_fields = ["small_logo", "big_logo", "categories"] @@ -259,7 +263,7 @@ class ProductAdmin(FieldsetsMixin, BasicModelAdmin): autocomplete_fields = ("category", "brand", "tags") inlines = [AttributeValueInline, ProductImageInline, StockInline] - general_fields = ["name", "partnumber", "is_active", "is_digital"] + general_fields = ["is_active", "name", "partnumber", "is_active", "is_digital"] relation_fields = ["category", "brand", "tags"] @@ -270,7 +274,7 @@ class ProductTagAdmin(FieldsetsMixin, BasicModelAdmin): search_fields = ("tag_name",) readonly_fields = ("uuid", "modified", "created") - general_fields = ["tag_name", "name"] + general_fields = ["is_active", "tag_name", "name"] relation_fields = [] @@ -281,7 +285,7 @@ class CategoryTagAdmin(FieldsetsMixin, BasicModelAdmin): search_fields = ("tag_name",) readonly_fields = ("uuid", "modified", "created") - general_fields = ["tag_name", "name"] + general_fields = ["is_active", "tag_name", "name"] relation_fields = [] @@ -294,7 +298,7 @@ class VendorAdmin(FieldsetsMixin, BasicModelAdmin): readonly_fields = ("uuid", "modified", "created") form = VendorForm - general_fields = ["name", "markup_percent", "authentication"] + general_fields = ["is_active", "name", "markup_percent", "authentication"] relation_fields = [] @@ -306,7 +310,7 @@ class FeedbackAdmin(FieldsetsMixin, BasicModelAdmin): search_fields = ("order_product__product__name", "comment") readonly_fields = ("uuid", "modified", "created") - general_fields = ["rating", "comment"] + general_fields = ["is_active", "rating", "comment"] relation_fields = ["order_product"] @@ -334,7 +338,7 @@ class OrderAdmin(FieldsetsMixin, BasicModelAdmin): inlines = [OrderProductInline] form = OrderForm - general_fields = ["user", "status"] + general_fields = ["is_active", "user", "status"] relation_fields = ["promo_code", "billing_address", "shipping_address"] @@ -347,7 +351,7 @@ class OrderProductAdmin(FieldsetsMixin, BasicModelAdmin): readonly_fields = ("uuid", "modified", "created") form = OrderProductForm - general_fields = ["quantity", "buy_price", "status"] + general_fields = ["is_active", "quantity", "buy_price", "status"] relation_fields = ["order", "product"] @@ -363,11 +367,19 @@ class PromoCodeAdmin(FieldsetsMixin, BasicModelAdmin): "used_on", ) list_filter = ("discount_percent", "discount_amount", "start_time", "end_time") - search_fields = ("code", ) + search_fields = ("code",) readonly_fields = ("used_on", "uuid", "modified", "created") autocomplete_fields = ("user",) - general_fields = ["code", "discount_amount", "discount_percent", "start_time", "end_time", "used_on"] + general_fields = [ + "is_active", + "code", + "discount_amount", + "discount_percent", + "start_time", + "end_time", + "used_on", + ] relation_fields = ["user"] @@ -379,7 +391,7 @@ class PromotionAdmin(FieldsetsMixin, BasicModelAdmin): readonly_fields = ("uuid", "modified", "created") autocomplete_fields = ("products",) - general_fields = ["name", "discount_percent", "description"] + general_fields = ["is_active", "name", "discount_percent", "description"] relation_fields = ["products"] @@ -392,7 +404,14 @@ class StockAdmin(FieldsetsMixin, BasicModelAdmin): readonly_fields = ("uuid", "modified", "created") autocomplete_fields = ("product", "vendor") - general_fields = ["sku", "quantity", "price", "purchase_price", "digital_asset"] + general_fields = [ + "is_active", + "sku", + "quantity", + "price", + "purchase_price", + "digital_asset", + ] relation_fields = ["product", "vendor"] @@ -403,7 +422,7 @@ class WishlistAdmin(FieldsetsMixin, BasicModelAdmin): search_fields = ("user__email",) readonly_fields = ("uuid", "modified", "created") - general_fields = ["user"] + general_fields = ["is_active", "user"] relation_fields = ["products"] @@ -416,7 +435,7 @@ class ProductImageAdmin(FieldsetsMixin, BasicModelAdmin): readonly_fields = ("uuid", "modified", "created") autocomplete_fields = ("product",) - general_fields = ["alt", "priority", "image"] + general_fields = ["is_active", "alt", "priority", "image"] relation_fields = ["product"] @@ -436,6 +455,7 @@ class AddressAdmin(FieldsetsMixin, GISModelAdmin): } general_fields = [ + "is_active", "address_line", "street", "district",