from django.contrib import admin from django import forms from .models import LockerBank, LockerInfo, LockerUnit class LockerInfoInline(admin.TabularInline): model = LockerInfo extra = 0 class LockerUnitInline(admin.TabularInline): model = LockerUnit extra = 0 @admin.register(LockerBank) class LockerBankAdmin(admin.ModelAdmin): inlines = [LockerUnitInline] prepopulated_fields = {"slug": ("name",)} @admin.register(LockerUnit) class LockerUnitAdmin(admin.ModelAdmin): inlines = [LockerInfoInline] @admin.register(LockerInfo) class LockerInfoAdmin(admin.ModelAdmin): search_fields = ["renter__username", "locker_unit__bank__name"] list_filter = ["locker_unit__bank", "locker_unit", "renter"] list_display = ["locker_unit", "address", "blind_code", "bitting_code", "renter"] list_display_links = ["locker_unit", "address"] list_editable = ["blind_code", "bitting_code"] def get_queryset(self, request): return LockerInfo.objects.select_related("locker_unit", "locker_unit__bank") def get_changelist_formset(self, request, **kwargs): kwargs["widgets"] = { "blind_code": forms.TextInput(attrs={"size": 6}), "bitting_code": forms.TextInput(attrs={"size": 6}), } return super().get_changelist_formset(request, **kwargs)