Added cached readonly field "address" to traveler to allow search functionally and reduce database lookups

This commit is contained in:
John Mullins
2024-02-16 18:10:08 +11:00
parent 83d5874155
commit cd022fbf54
3 changed files with 10 additions and 39 deletions
+1 -10
View File
@@ -185,7 +185,7 @@ class TravellerAdmin(MyImportExportModelAdmin, admin.ModelAdmin, TravellerRollMi
title="End date"
))
]
search_fields = ["first_name", "last_name"]
search_fields = ["first_name", "last_name", "address"]
inlines = [FamilyInline, TravellerRouteInline]
readonly_fields = ["travel_start_date", "travel_end_date", "fare_paying", "created_on", "last_edit", "is_active", "address"]
actions = ["export_to_csv", "send_sms", "confirmation_letter", "letter_creator"]
@@ -233,15 +233,6 @@ class TravellerAdmin(MyImportExportModelAdmin, admin.ModelAdmin, TravellerRollMi
return stops.first()
return "Multiple"
def address(self, obj):
families = Family.objects.filter(traveller__id__exact=obj.id)
if families.count() == 0:
return ""
if families.count() == 1:
family = families.first()
return f"{family.residential_address} {family.residential_suburb}"
return "Multiple"
# def save_model(self, request, obj, form, change):
# if obj.is_archived and obj.travel_end_date is None:
# obj.is_archived = False