from django.contrib import admin from .models import Event, Reservation, MarketSlot, Square, ReservationCheck from .forms import ReservationAdminForm from trznice.admin import custom_admin_site class SquareAdmin(admin.ModelAdmin): list_display = ("id", "name", "description", "street", "city", "width", "height", "is_deleted") list_filter = ("name", "is_deleted") search_fields = ("name", "description") ordering = ("name",) base_fields = ['name', 'description', 'street', 'city', 'psc', 'width', 'height', 'grid_rows', 'grid_cols', 'cellsize', 'image'] 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(Square, SquareAdmin) # @admin.register(Event) class EventAdmin(admin.ModelAdmin): list_display = ("id", "name", "square", "start", "end", "price_per_m2", "is_deleted") list_filter = ("start", "end", "is_deleted") search_fields = ("name", "description") ordering = ("-start",) base_fields = ['name', 'description', 'square', 'price_per_m2', 'start', 'end', 'image'] 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(Event, EventAdmin) # @admin.register(Reservation) class ReservationAdmin(admin.ModelAdmin): form = ReservationAdminForm list_display = ("id", "event", "user", "reserved_from", "reserved_to", "status", "created_at", "is_checked", "is_deleted") list_filter = ("status", "user", "event", "is_deleted") search_fields = ("user__username", "user__email", "event__name", "note") ordering = ("-created_at",) filter_horizontal = ['event_products'] # adds a nice widget for selection base_fields = ['event', 'market_slot', 'user', 'status', 'used_extension', 'event_products', 'reserved_to', 'reserved_from', 'final_price', 'note', "is_checked", "last_checked_at", "last_checked_by"] 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(Reservation, ReservationAdmin) class MarketSlotAdmin(admin.ModelAdmin): list_display = ("id", "event", "number", "status", "base_size", "available_extension", "price_per_m2", "x", "y", "width", "height", "is_deleted") list_filter = ("status", "event", "is_deleted") search_fields = ("event__name",) ordering = ("event", "status") base_fields = ['event', 'status', 'number', 'base_size', 'available_extension', 'price_per_m2', 'width', 'height', 'x', 'y'] readonly_fields = ("id", "number") # zde 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(MarketSlot, MarketSlotAdmin) class ReservationCheckAdmin(admin.ModelAdmin): list_display = ("id", "reservation", "checker", "checked_at", "is_deleted") list_filter = ("reservation", "checker", "is_deleted") search_fields = ("checker__email", "reservation__event__name") ordering = ("-checked_at",) base_fields = ["reservation", "checker", "checked_at"] readonly_fields = ("id", "checked_at") # zde 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(ReservationCheck, ReservationCheckAdmin)