diff --git a/busManager/coord/context_helpers.py b/busManager/coord/context_helpers.py index f77913d..b4d8e7a 100644 --- a/busManager/coord/context_helpers.py +++ b/busManager/coord/context_helpers.py @@ -4,6 +4,8 @@ from coord.models import Bus, BusStop, TravellerRoute, Driver, Traveller, Shuttl def bus_roll_context(queryset=None): + table_header_size = 5 + page_max_size = 45 bus_routes = [] if queryset is None: buses = Bus.objects.all() @@ -11,10 +13,21 @@ def bus_roll_context(queryset=None): buses = queryset for bus in buses: - bus_route = [] + route_pages = [] + page_stops = [] + page_size = 0 for bus_stop in BusStop.objects.filter(bus=bus): + traveller_routes = TravellerRoute.objects.filter(busStop=bus_stop) + page_size += table_header_size + traveller_routes.count() + if page_size > page_max_size: + route_pages.append({ + 'stops': page_stops + }) + page_stops = [] + page_size = table_header_size + traveller_routes.count() + traveller_list = [] - for trav_route in TravellerRoute.objects.filter(busStop=bus_stop): + for trav_route in traveller_routes: traveller = trav_route.traveller if not traveller.is_active(): continue @@ -25,14 +38,13 @@ def bus_roll_context(queryset=None): 'display': f"{traveller} ({traveller.get_year_level_display()}, {traveller.school.shortName})", 'isFared': is_fared }) - stop_result = { + page_stops.append({ 'stop_num': bus_stop.get_stop_number(), 'name': bus_stop.address, 'am': bus_stop.am_time, 'pm': bus_stop.pm_time, 'travellers': traveller_list - } - bus_route.append(stop_result) + }) shuttle_travellers = [] has_shuttle = False @@ -43,7 +55,7 @@ def bus_roll_context(queryset=None): 'display': f"{traveller} ({traveller.get_year_level_display()}, {traveller.school})", }) - bus_routes.append({'bus': bus, 'stops': bus_route, 'has_shuttle': has_shuttle, 'shuttle_travellers': shuttle_travellers}) + bus_routes.append({'route_name': bus.route_name, 'route_pages': route_pages, 'has_shuttle': has_shuttle, 'shuttle_travellers': shuttle_travellers}) return {'routes': bus_routes} @@ -84,7 +96,6 @@ def school_roll_context(queryset): 'travellers': travellers }) - school_list.append({"name": school.name, "routes": school_routes}) return {"schools": school_list} diff --git a/busManager/coord/templates/reports/bus_roll.html b/busManager/coord/templates/reports/bus_roll.html index 34783d3..cd6e304 100644 --- a/busManager/coord/templates/reports/bus_roll.html +++ b/busManager/coord/templates/reports/bus_roll.html @@ -18,58 +18,59 @@ {% for route in routes %} -

{{ route.bus.route_name }}

- {% for stop in route.stops %} -
- - - - - - - - - - - -
Stop Number #{{ stop.stop_num }}Pickup TimeDrop-off Time
{{ stop.name }}{{ stop.am }}{{ stop.pm }}
- - - - - - - - - - - - - - - - {% for traveller in stop.travellers %} + {% for page in route.route_pages %} +

{{ route.route_name }}

+ {% for stop in page.stops %} +
StudentFareMon AMMon PMTue AMTue PMWed AMWed PMThu AMThu PMFri AMFri PM
- - - - - - - - - - - - + + + - {% endfor %} -
{{ traveller.display }}{{ traveller.isFared }} Pickup TimeDrop-off Time
-
+ + Stop Number #{{ stop.stop_num }} {{ stop.name }} + {{ stop.am }} + {{ stop.pm }} + + + + + + + + + + + + + + + + + + {% for traveller in stop.travellers %} + + + + + + + + + + + + + + + {% endfor %} +
StudentFareMon AMMon PMTue AMTue PMWed AMWed PMThu AMThu PMFri AMFri PM
{{ traveller.display }}{{ traveller.isFared }}
+
+ {% endfor %} +

{% endfor %} {% if route.has_shuttle %} -

-

{{ route.bus.route_name }} (Shuttle)

+

{{ route.route_name }} (Shuttle)

{% for traveller in route.shuttle_travellers %} @@ -77,6 +78,6 @@ {% endfor %}
+

{% endif %} -

{% endfor %} \ No newline at end of file