Features: 1) Add readonly_fields for uuid, modified, and created attributes across multiple admin models; 2) Improve type annotations for FieldsetsMixin class fields.
Fixes: 1) Resolve "type: ignore" addition for `ProductAdmin` model definition. Extra: 1) Minor formatting adjustments for improved readability; 2) Enhance code clarity by standardizing `readonly_fields` across admin classes.
This commit is contained in:
parent
d9e67d5de3
commit
15df6dd0c8
1 changed files with 28 additions and 6 deletions
|
|
@ -52,8 +52,8 @@ class TranslationFieldsetMixin:
|
|||
|
||||
|
||||
class FieldsetsMixin:
|
||||
general_fields = []
|
||||
relation_fields = []
|
||||
general_fields: list = []
|
||||
relation_fields: list = []
|
||||
model: Model
|
||||
|
||||
def get_fieldsets(self, request, obj=None):
|
||||
|
|
@ -143,6 +143,7 @@ class AttributeGroupAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAd
|
|||
model = AttributeGroup
|
||||
list_display = ("name", "modified")
|
||||
search_fields = ("uuid", "name")
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
|
||||
general_fields = ["name", "parent"]
|
||||
relation_fields = []
|
||||
|
|
@ -154,6 +155,7 @@ class AttributeAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
|||
list_display = ("name", "group", "value_type", "modified")
|
||||
list_filter = ("value_type", "group", "is_active")
|
||||
search_fields = ("uuid", "name", "group__name")
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
autocomplete_fields = ["categories", "group"]
|
||||
|
||||
general_fields = ["name", "value_type"]
|
||||
|
|
@ -166,6 +168,7 @@ class AttributeValueAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAd
|
|||
list_display = ("attribute", "value", "modified")
|
||||
list_filter = ("attribute__group", "is_active")
|
||||
search_fields = ("uuid", "value", "attribute__name")
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
autocomplete_fields = ["attribute"]
|
||||
|
||||
general_fields = ["value"]
|
||||
|
|
@ -182,7 +185,7 @@ class CategoryAdmin(
|
|||
search_fields = ("uuid", "name")
|
||||
inlines = [CategoryChildrenInline]
|
||||
autocomplete_fields = ["parent", "tags"]
|
||||
readonly_fields = ("slug",)
|
||||
readonly_fields = ("slug", "uuid", "modified", "created")
|
||||
|
||||
general_fields = ["name", "description", "image", "markup_percent"]
|
||||
relation_fields = ["parent", "tags"]
|
||||
|
|
@ -194,6 +197,7 @@ class BrandAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
|||
list_display = ("name",)
|
||||
list_filter = ("categories", "is_active")
|
||||
search_fields = ("uuid", "name", "categories__name")
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
|
||||
general_fields = ["name", "description"]
|
||||
relation_fields = ["small_logo", "big_logo", "categories"]
|
||||
|
|
@ -201,7 +205,7 @@ class BrandAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
|||
|
||||
@admin.register(Product)
|
||||
class ProductAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
||||
model = Product
|
||||
model = Product # type: ignore
|
||||
list_display = (
|
||||
"name",
|
||||
"partnumber",
|
||||
|
|
@ -228,7 +232,7 @@ class ProductAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
|||
"uuid",
|
||||
"slug",
|
||||
)
|
||||
readonly_fields = ("slug",)
|
||||
readonly_fields = ("slug", "uuid", "modified", "created")
|
||||
autocomplete_fields = ("category", "brand", "tags")
|
||||
inlines = [AttributeValueInline, ProductImageInline, StockInline]
|
||||
|
||||
|
|
@ -241,6 +245,7 @@ class ProductTagAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin)
|
|||
model = ProductTag
|
||||
list_display = ("tag_name",)
|
||||
search_fields = ("tag_name",)
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
|
||||
general_fields = ["tag_name", "name"]
|
||||
relation_fields = []
|
||||
|
|
@ -251,6 +256,7 @@ class CategoryTagAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin
|
|||
model = CategoryTag
|
||||
list_display = ("tag_name",)
|
||||
search_fields = ("tag_name",)
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
|
||||
general_fields = ["tag_name", "name"]
|
||||
relation_fields = []
|
||||
|
|
@ -262,6 +268,7 @@ class VendorAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
list_display = ("name", "markup_percent", "modified")
|
||||
list_filter = ("markup_percent", "is_active")
|
||||
search_fields = ("name",)
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
form = VendorForm
|
||||
|
||||
general_fields = ["name", "markup_percent", "authentication"]
|
||||
|
|
@ -274,6 +281,7 @@ class FeedbackAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
|||
list_display = ("order_product", "rating", "comment", "modified")
|
||||
list_filter = ("rating", "is_active")
|
||||
search_fields = ("order_product__product__name", "comment")
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
|
||||
general_fields = ["rating", "comment"]
|
||||
relation_fields = ["order_product"]
|
||||
|
|
@ -292,7 +300,14 @@ class OrderAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
)
|
||||
list_filter = ("status", "buy_time", "modified", "created")
|
||||
search_fields = ("user__email", "status", "uuid", "human_readable_id")
|
||||
readonly_fields = ("total_price", "total_quantity", "human_readable_id")
|
||||
readonly_fields = (
|
||||
"total_price",
|
||||
"total_quantity",
|
||||
"human_readable_id",
|
||||
"uuid",
|
||||
"modified",
|
||||
"created",
|
||||
)
|
||||
inlines = [OrderProductInline]
|
||||
form = OrderForm
|
||||
|
||||
|
|
@ -306,6 +321,7 @@ class OrderProductAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
list_display = ("order", "product", "quantity", "buy_price", "status", "modified")
|
||||
list_filter = ("status",)
|
||||
search_fields = ("order__user__email", "product__name")
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
form = OrderProductForm
|
||||
|
||||
general_fields = ["quantity", "buy_price", "status"]
|
||||
|
|
@ -325,6 +341,7 @@ class PromoCodeAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
)
|
||||
list_filter = ("discount_percent", "discount_amount", "start_time", "end_time")
|
||||
search_fields = ("code",)
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
|
||||
general_fields = ["code", "discount_amount", "discount_percent"]
|
||||
relation_fields = ["user"]
|
||||
|
|
@ -335,6 +352,7 @@ class PromotionAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
|||
model = Promotion
|
||||
list_display = ("name", "discount_percent", "modified")
|
||||
search_fields = ("name",)
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
autocomplete_fields = ("products",)
|
||||
|
||||
general_fields = ["name", "discount_percent", "description"]
|
||||
|
|
@ -347,6 +365,7 @@ class StockAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
list_display = ("product", "vendor", "sku", "quantity", "price", "modified")
|
||||
list_filter = ("vendor", "quantity")
|
||||
search_fields = ("product__name", "vendor__name", "sku")
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
autocomplete_fields = ("product", "vendor")
|
||||
|
||||
general_fields = ["sku", "quantity", "price", "purchase_price", "digital_asset"]
|
||||
|
|
@ -358,6 +377,7 @@ class WishlistAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
model = Wishlist
|
||||
list_display = ("user", "modified")
|
||||
search_fields = ("user__email",)
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
|
||||
general_fields = ["user"]
|
||||
relation_fields = ["products"]
|
||||
|
|
@ -369,6 +389,7 @@ class ProductImageAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmi
|
|||
list_display = ("alt", "product", "priority", "modified")
|
||||
list_filter = ("priority",)
|
||||
search_fields = ("alt", "product__name")
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
autocomplete_fields = ("product",)
|
||||
|
||||
general_fields = ["alt", "priority", "image"]
|
||||
|
|
@ -381,6 +402,7 @@ class AddressAdmin(FieldsetsMixin, GISModelAdmin):
|
|||
list_display = ("street", "city", "region", "country", "user")
|
||||
list_filter = ("country", "region")
|
||||
search_fields = ("street", "city", "postal_code", "user__email")
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
gis_widget_kwargs = {
|
||||
"attrs": {
|
||||
"default_lon": 37.61556,
|
||||
|
|
|
|||
Loading…
Reference in a new issue