Features: 1) Add is_navtab, verbose_name, verbose_name_plural, and icon attributes to several inlines for better configuration and clarity;
Fixes: 1) Add `# type: ignore` comments to suppress type checking issues on model assignments; Extra: 1) General code cleanup and improvements to the `admin.py` file.
This commit is contained in:
parent
15df6dd0c8
commit
0079998ed7
1 changed files with 39 additions and 19 deletions
|
|
@ -104,16 +104,28 @@ class AttributeValueInline(TabularInline):
|
|||
model = AttributeValue
|
||||
extra = 0
|
||||
autocomplete_fields = ["attribute"]
|
||||
is_navtab = True
|
||||
verbose_name = _("attribute value")
|
||||
verbose_name_plural = _("attribute values")
|
||||
icon = "fa-regular fa-circle-dot"
|
||||
|
||||
|
||||
class ProductImageInline(TabularInline):
|
||||
model = ProductImage
|
||||
extra = 0
|
||||
is_navtab = True
|
||||
verbose_name = _("image")
|
||||
verbose_name_plural = _("images")
|
||||
icon = "fa-regular fa-images"
|
||||
|
||||
|
||||
class StockInline(TabularInline):
|
||||
model = Stock
|
||||
extra = 0
|
||||
is_navtab = True
|
||||
verbose_name = _("stock")
|
||||
verbose_name_plural = _("stocks")
|
||||
icon = "fa-regular fa-boxes-stacked"
|
||||
|
||||
|
||||
class OrderProductInline(TabularInline):
|
||||
|
|
@ -121,6 +133,10 @@ class OrderProductInline(TabularInline):
|
|||
extra = 0
|
||||
readonly_fields = ("product", "quantity", "buy_price")
|
||||
form = OrderProductForm
|
||||
is_navtab = True
|
||||
verbose_name = _("order product")
|
||||
verbose_name_plural = _("order products")
|
||||
icon = "fa-regular fa-circle-dot"
|
||||
|
||||
def get_queryset(self, request):
|
||||
return (
|
||||
|
|
@ -136,11 +152,15 @@ class CategoryChildrenInline(TabularInline):
|
|||
fk_name = "parent"
|
||||
extra = 0
|
||||
fields = ("name", "description", "is_active", "image", "markup_percent")
|
||||
is_navtab = True
|
||||
verbose_name = _("children")
|
||||
verbose_name_plural = _("children")
|
||||
icon = "fa-regular fa-circle-dot"
|
||||
|
||||
|
||||
@admin.register(AttributeGroup)
|
||||
class AttributeGroupAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
||||
model = AttributeGroup
|
||||
model = AttributeGroup # type: ignore
|
||||
list_display = ("name", "modified")
|
||||
search_fields = ("uuid", "name")
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
|
|
@ -151,7 +171,7 @@ class AttributeGroupAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAd
|
|||
|
||||
@admin.register(Attribute)
|
||||
class AttributeAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
||||
model = Attribute
|
||||
model = Attribute # type: ignore
|
||||
list_display = ("name", "group", "value_type", "modified")
|
||||
list_filter = ("value_type", "group", "is_active")
|
||||
search_fields = ("uuid", "name", "group__name")
|
||||
|
|
@ -164,7 +184,7 @@ class AttributeAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
|||
|
||||
@admin.register(AttributeValue)
|
||||
class AttributeValueAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
||||
model = AttributeValue
|
||||
model = AttributeValue # type: ignore
|
||||
list_display = ("attribute", "value", "modified")
|
||||
list_filter = ("attribute__group", "is_active")
|
||||
search_fields = ("uuid", "value", "attribute__name")
|
||||
|
|
@ -179,7 +199,7 @@ class AttributeValueAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAd
|
|||
class CategoryAdmin(
|
||||
FieldsetsMixin, TranslationFieldsetMixin, DraggableMPTTAdmin, BasicModelAdmin
|
||||
):
|
||||
model = Category
|
||||
model = Category # type: ignore
|
||||
list_display = ("indented_title", "parent", "is_active", "modified")
|
||||
list_filter = ("is_active", "level", "created", "modified")
|
||||
search_fields = ("uuid", "name")
|
||||
|
|
@ -193,7 +213,7 @@ class CategoryAdmin(
|
|||
|
||||
@admin.register(Brand)
|
||||
class BrandAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
||||
model = Brand
|
||||
model = Brand # type: ignore
|
||||
list_display = ("name",)
|
||||
list_filter = ("categories", "is_active")
|
||||
search_fields = ("uuid", "name", "categories__name")
|
||||
|
|
@ -242,7 +262,7 @@ class ProductAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
|||
|
||||
@admin.register(ProductTag)
|
||||
class ProductTagAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
||||
model = ProductTag
|
||||
model = ProductTag # type: ignore
|
||||
list_display = ("tag_name",)
|
||||
search_fields = ("tag_name",)
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
|
|
@ -253,7 +273,7 @@ class ProductTagAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin)
|
|||
|
||||
@admin.register(CategoryTag)
|
||||
class CategoryTagAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
||||
model = CategoryTag
|
||||
model = CategoryTag # type: ignore
|
||||
list_display = ("tag_name",)
|
||||
search_fields = ("tag_name",)
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
|
|
@ -264,7 +284,7 @@ class CategoryTagAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin
|
|||
|
||||
@admin.register(Vendor)
|
||||
class VendorAdmin(FieldsetsMixin, BasicModelAdmin):
|
||||
model = Vendor
|
||||
model = Vendor # type: ignore
|
||||
list_display = ("name", "markup_percent", "modified")
|
||||
list_filter = ("markup_percent", "is_active")
|
||||
search_fields = ("name",)
|
||||
|
|
@ -277,7 +297,7 @@ class VendorAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
|
||||
@admin.register(Feedback)
|
||||
class FeedbackAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
||||
model = Feedback
|
||||
model = Feedback # type: ignore
|
||||
list_display = ("order_product", "rating", "comment", "modified")
|
||||
list_filter = ("rating", "is_active")
|
||||
search_fields = ("order_product__product__name", "comment")
|
||||
|
|
@ -289,7 +309,7 @@ class FeedbackAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
|||
|
||||
@admin.register(Order)
|
||||
class OrderAdmin(FieldsetsMixin, BasicModelAdmin):
|
||||
model = Order
|
||||
model = Order # type: ignore
|
||||
list_display = (
|
||||
"human_readable_id",
|
||||
"user",
|
||||
|
|
@ -317,7 +337,7 @@ class OrderAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
|
||||
@admin.register(OrderProduct)
|
||||
class OrderProductAdmin(FieldsetsMixin, BasicModelAdmin):
|
||||
model = OrderProduct
|
||||
model = OrderProduct # type: ignore
|
||||
list_display = ("order", "product", "quantity", "buy_price", "status", "modified")
|
||||
list_filter = ("status",)
|
||||
search_fields = ("order__user__email", "product__name")
|
||||
|
|
@ -330,7 +350,7 @@ class OrderProductAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
|
||||
@admin.register(PromoCode)
|
||||
class PromoCodeAdmin(FieldsetsMixin, BasicModelAdmin):
|
||||
model = PromoCode
|
||||
model = PromoCode # type: ignore
|
||||
list_display = (
|
||||
"code",
|
||||
"discount_percent",
|
||||
|
|
@ -349,7 +369,7 @@ class PromoCodeAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
|
||||
@admin.register(Promotion)
|
||||
class PromotionAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
||||
model = Promotion
|
||||
model = Promotion # type: ignore
|
||||
list_display = ("name", "discount_percent", "modified")
|
||||
search_fields = ("name",)
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
|
|
@ -361,7 +381,7 @@ class PromotionAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
|||
|
||||
@admin.register(Stock)
|
||||
class StockAdmin(FieldsetsMixin, BasicModelAdmin):
|
||||
model = Stock
|
||||
model = Stock # type: ignore
|
||||
list_display = ("product", "vendor", "sku", "quantity", "price", "modified")
|
||||
list_filter = ("vendor", "quantity")
|
||||
search_fields = ("product__name", "vendor__name", "sku")
|
||||
|
|
@ -374,7 +394,7 @@ class StockAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
|
||||
@admin.register(Wishlist)
|
||||
class WishlistAdmin(FieldsetsMixin, BasicModelAdmin):
|
||||
model = Wishlist
|
||||
model = Wishlist # type: ignore
|
||||
list_display = ("user", "modified")
|
||||
search_fields = ("user__email",)
|
||||
readonly_fields = ("uuid", "modified", "created")
|
||||
|
|
@ -385,7 +405,7 @@ class WishlistAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
|
||||
@admin.register(ProductImage)
|
||||
class ProductImageAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmin):
|
||||
model = ProductImage
|
||||
model = ProductImage # type: ignore
|
||||
list_display = ("alt", "product", "priority", "modified")
|
||||
list_filter = ("priority",)
|
||||
search_fields = ("alt", "product__name")
|
||||
|
|
@ -398,7 +418,7 @@ class ProductImageAdmin(FieldsetsMixin, TranslationFieldsetMixin, BasicModelAdmi
|
|||
|
||||
@admin.register(Address)
|
||||
class AddressAdmin(FieldsetsMixin, GISModelAdmin):
|
||||
model = Address
|
||||
model = Address # type: ignore
|
||||
list_display = ("street", "city", "region", "country", "user")
|
||||
list_filter = ("country", "region")
|
||||
search_fields = ("street", "city", "postal_code", "user__email")
|
||||
|
|
@ -457,8 +477,8 @@ class ConstanceConfig:
|
|||
_meta = Meta()
|
||||
|
||||
|
||||
admin.site.unregister([Config])
|
||||
admin.site.register([ConstanceConfig], BaseConstanceAdmin)
|
||||
admin.site.unregister([Config]) # type: ignore
|
||||
admin.site.register([ConstanceConfig], BaseConstanceAdmin) # type: ignore
|
||||
admin.site.site_title = CONSTANCE_CONFIG["PROJECT_NAME"][0]
|
||||
admin.site.site_header = "eVibes"
|
||||
admin.site.index_title = CONSTANCE_CONFIG["PROJECT_NAME"][0]
|
||||
|
|
|
|||
Loading…
Reference in a new issue