from django.contrib import admin from .models import Reservation, Venue, Workshop @admin.register(Venue) class VenueAdmin(admin.ModelAdmin): list_display = ["name", "code", "access_note"] search_fields = ["name", "code"] @admin.register(Workshop) class WorkshopAdmin(admin.ModelAdmin): list_display = ["title", "venue", "remaining", "capacity", "published"] list_filter = ["published", "venue"] search_fields = ["title", "slug"] prepopulated_fields = {"slug": ["title"]} list_select_related = ["venue"] actions = ["publish_selected"] def get_readonly_fields(self, request, obj=None): return ["remaining", "capacity"] if obj else [] @admin.action(description="Publish selected workshops") def publish_selected(self, request, queryset): queryset.update(published=True) @admin.register(Reservation) class ReservationAdmin(admin.ModelAdmin): list_display = ["workshop", "user", "seats", "created_at"] list_select_related = ["workshop", "user"] readonly_fields = ["workshop", "user", "seats", "created_at"] def has_add_permission(self, request): return False def has_delete_permission(self, request, obj=None): return False