# catalog/sb_admin.py
from django.contrib import admin
from django.utils.safestring import mark_safe
class ProductSameManufacturerInline(SBAdminFakeInlineMixin, SBAdminTableInline):
model = Product
fields = ["name", "price", "is_active", "created", "is_current_product"]
readonly_fields = fields
can_delete = False
verbose_name = "Product from the same manufacturer - Fake inline example"
verbose_name_plural = "Products from the same manufacturer - Fake inline example"
def has_add_permission(self, request, obj=None):
return False
def has_change_permission(self, request, obj=None):
return False
def filter_fake_inline_identifier_by_parent_instance(self, inline_queryset, parent_instance):
return inline_queryset.filter(manufacturer=parent_instance.manufacturer)
@admin.display(description="Current product")
def is_current_product(self, obj):
if obj.pk == self.parent_instance.pk:
return mark_safe('<svg class="w-20 h-20 text-success"><use xlink:href="#Check"></use></svg>')
return ""
@admin.register(Product, site=sb_admin_site)
class ProductSBAdmin(SBAdmin):
inlines = [ProductImageInline]
sbadmin_fake_inlines = [ProductSameManufacturerInline]