Adam Goldsmith
e2eca77827
Have already done the bulk input, so this is just likely to cause accidental changes now
57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
from django.db.models import Prefetch
|
|
from django.contrib import admin
|
|
from django import forms
|
|
|
|
from membershipworks.models import Member
|
|
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"]
|
|
list_display = [
|
|
"locker_unit",
|
|
"address",
|
|
"blind_code",
|
|
"bitting_code",
|
|
"renter",
|
|
"notes",
|
|
]
|
|
list_display_links = ["locker_unit", "address"]
|
|
|
|
def get_queryset(self, request):
|
|
return LockerInfo.objects.select_related(
|
|
"locker_unit", "locker_unit__bank"
|
|
).prefetch_related(
|
|
Prefetch("renter", queryset=Member.objects.only("account_name"))
|
|
)
|
|
|
|
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)
|