cmsmanage/rentals/admin.py

57 lines
1.5 KiB
Python
Raw Normal View History

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
2022-01-24 23:37:04 -05:00
class LockerUnitInline(admin.TabularInline):
model = LockerUnit
extra = 0
2022-01-24 23:37:04 -05:00
@admin.register(LockerBank)
class LockerBankAdmin(admin.ModelAdmin):
inlines = [LockerUnitInline]
prepopulated_fields = {"slug": ("name",)}
2022-01-24 23:37:04 -05:00
@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)