Added csv export for traveller and email to schools function

This commit is contained in:
John Mullins
2023-09-01 11:23:30 +10:00
parent b93d488598
commit 86c9b13c9a
5 changed files with 93 additions and 46 deletions
+39 -2
View File
@@ -1,4 +1,4 @@
from coord.models import Bus, BusStop, TravellerRoute, Driver, Traveller, Shuttle
from coord.models import Bus, BusStop, TravellerRoute, Driver, Traveller, Shuttle, School
def bus_roll_context(queryset=None):
@@ -30,7 +30,6 @@ def bus_roll_context(queryset=None):
'pm': bus_stop.pm_time,
'travellers': traveller_list
}
# print(traveller_list)
bus_route.append(stop_result)
# Todo Add shuttles
@@ -39,6 +38,42 @@ def bus_roll_context(queryset=None):
return {'routes': bus_routes}
def traveller_roll_context(queryset):
travellers = []
for traveller in queryset:
for traveller_route in TravellerRoute.objects.filter(traveller=traveller):
travellers.append(traveller_route_context(traveller_route))
return travellers
def school_roll_context(school):
travellers = []
for travellerRoute in TravellerRoute.objects.filter(traveller__school=school):
traveller = travellerRoute.traveller
if not traveller.is_active():
continue
travellers.append(traveller_route_context(travellerRoute))
return travellers
def traveller_route_context(traveller_route):
traveller = traveller_route.traveller
return {
'first_name': traveller.first_name,
'last_name': traveller.last_name,
'school': traveller.school,
'dob': traveller.dob,
'year_level': traveller.year_level,
'address': f"{traveller.residential_address} {traveller.residential_suburb}",
'start_date': traveller.travel_start_date,
'end_date': traveller.travel_end_date,
'eligibility': traveller.get_eligibility_status_display(),
'shuttle': traveller.shuttle,
'route': traveller_route.busStop.bus,
'stop': f"#{traveller_route.busStop.get_stop_number()} - {traveller_route.busStop.address}"
}
def emergency_contacts_context(queryset=None):
if queryset is None:
buses = Bus.objects.all()
@@ -123,3 +158,5 @@ def bus_summary_context():
'over_capacity': over_capacity,
})
return {'routes': bus_routes}