init
This commit is contained in:
60
backend/product/admin.py
Normal file
60
backend/product/admin.py
Normal file
@@ -0,0 +1,60 @@
|
||||
from django.contrib import admin
|
||||
from trznice.admin import custom_admin_site
|
||||
from .models import Product, EventProduct
|
||||
|
||||
|
||||
class ProductAdmin(admin.ModelAdmin):
|
||||
base_list_display = ("id", "name", "code")
|
||||
admin_extra_display = ("is_deleted",)
|
||||
list_filter = ("name", "is_deleted")
|
||||
search_fields = ("name", "code")
|
||||
ordering = ("name",)
|
||||
|
||||
base_fields = ['name', 'code']
|
||||
|
||||
|
||||
def get_fields(self, request, obj=None):
|
||||
fields = self.base_fields.copy()
|
||||
if request.user.role == "admin":
|
||||
fields += ['is_deleted', 'deleted_at']
|
||||
return fields
|
||||
|
||||
def get_queryset(self, request):
|
||||
# Use the all_objects manager to show even soft-deleted entries
|
||||
if request.user.role == "admin":
|
||||
qs = self.model.all_objects.all()
|
||||
else:
|
||||
qs = self.model.objects.all()
|
||||
return qs
|
||||
|
||||
def get_list_display(self, request):
|
||||
if request.user.role == "admin":
|
||||
return self.base_list_display + self.admin_extra_display
|
||||
return self.base_list_display
|
||||
|
||||
custom_admin_site.register(Product, ProductAdmin)
|
||||
|
||||
|
||||
class EventProductAdmin(admin.ModelAdmin):
|
||||
list_display = ("id", "event", "product", "start_selling_date", "end_selling_date", "is_deleted")
|
||||
list_filter = ("event", "product", "start_selling_date", "end_selling_date", "is_deleted")
|
||||
search_fields = ("product__name", "event__name")
|
||||
ordering = ("-start_selling_date",)
|
||||
|
||||
base_fields = ['product', 'event', 'start_selling_date', 'end_selling_date']
|
||||
|
||||
def get_fields(self, request, obj=None):
|
||||
fields = self.base_fields.copy()
|
||||
if request.user.role == "admin":
|
||||
fields += ['is_deleted', 'deleted_at']
|
||||
return fields
|
||||
|
||||
def get_queryset(self, request):
|
||||
# Use the all_objects manager to show even soft-deleted entries
|
||||
if request.user.role == "admin":
|
||||
qs = self.model.all_objects.all()
|
||||
else:
|
||||
qs = self.model.objects.all()
|
||||
return qs
|
||||
|
||||
custom_admin_site.register(EventProduct, EventProductAdmin)
|
||||
Reference in New Issue
Block a user