This commit is contained in:
2025-10-02 00:54:34 +02:00
commit 84b34c9615
200 changed files with 42048 additions and 0 deletions

60
backend/product/admin.py Normal file
View 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)