Added traveller count + hyperlinks to bus and shuttle view

This commit is contained in:
John Mullins
2023-08-28 15:27:24 +10:00
parent f9981aadf0
commit 2f1ae0586b
2 changed files with 41 additions and 4 deletions
+27 -4
View File
@@ -60,14 +60,14 @@ class CompanyAdmin(MyImportExportModelAdmin, admin.ModelAdmin):
url = (
reverse("admin:coord_bus_changelist")
+ "?"
+ urlencode({"company__id": f"{obj.id}"})
+ urlencode({"company__id__exact": f"{obj.id}"})
)
return format_html('<a href="{}">{} Buses</a>', url, count)
class DriverInline(admin.StackedInline):
model = Driver
extra = 1
extra = 0
class BusStopInline(admin.TabularInline):
@@ -79,9 +79,24 @@ class BusStopInline(admin.TabularInline):
@admin.register(Bus)
class BusesAdmin(MyImportExportModelAdmin, admin.ModelAdmin, BusRollMixin):
list_filter = ["company"]
list_display = ["route_name", "company", "contract_number"]
list_display = ["route_name", "company", "contract_number", "route_travellers"]
readonly_fields = ["traveller_count"]
actions = ["email_company", "bus_roll"]
inlines = [DriverInline, BusStopInline]
fieldsets = [
(None, {'fields': [
"company", "route_name", "contract_number", "registration",
"traveller_count", "seating_capacity", "make", "model", "notes"
]})
]
def route_travellers(self, obj):
url = (
reverse("admin:coord_traveller_changelist")
+ "?"
+ urlencode({"bus_stops__bus__id__exact": f"{obj.id}"})
)
return format_html('<a href="{}">{} Travellers</a>', url, obj.traveller_count())
@admin.register(BusStop)
@@ -205,7 +220,15 @@ class SettingAdmin(MyImportExportModelAdmin, admin.ModelAdmin):
@admin.register(Shuttle)
class ShuttleAdmin(MyImportExportModelAdmin, admin.ModelAdmin):
list_display = ["__str__", "school", "bus"]
list_display = ["__str__", "school", "bus", "shuttle_travellers"]
def shuttle_travellers(self, obj):
url = (
reverse("admin:coord_traveller_changelist")
+ "?"
+ urlencode({"shuttle__id__exact": f"{obj.id}"})
)
return format_html('<a href="{}">{} Travellers</a>', url, obj.traveller_count())
@admin.register(Driver)