b695dd8054
Moved helpers and views to their respective new apps
54 lines
2.1 KiB
Python
54 lines
2.1 KiB
Python
from common.documents import render_to_pdf
|
|
from messaging.services.email import email_companies_bus_roll, email_companies_emergency_contacts, \
|
|
email_school_shuttle_roll
|
|
from messaging.services.sms import send_sms
|
|
from transport.context_busroll import bus_roll_context
|
|
from transport.context_helpers import emergency_contacts_context
|
|
from transport.forms import roll_date_selector
|
|
from traveller.models import Traveller
|
|
|
|
|
|
class BusRollMixin:
|
|
|
|
def show_bus_roll(self, request, queryset):
|
|
return render_to_pdf('reports/bus_roll.html', bus_roll_context(queryset))
|
|
|
|
def show_bus_roll_on_date(self, request, queryset):
|
|
return roll_date_selector(self, request, queryset)
|
|
|
|
def show_emergency_contacts(self, request, queryset):
|
|
return render_to_pdf('reports/emergency_contacts.html', emergency_contacts_context(queryset))
|
|
|
|
def sms_traveller_contacts(self, request, queryset):
|
|
travellers = None
|
|
for bus in queryset:
|
|
query = Traveller.objects.filter(bus_stops__bus=bus).filter(is_active=True).distinct()
|
|
if travellers is None:
|
|
travellers = query
|
|
else:
|
|
travellers.union(query)
|
|
return send_sms(self, request, travellers)
|
|
|
|
def email_bus_roll(self, request, queryset):
|
|
return email_companies_bus_roll(request, queryset)
|
|
|
|
def email_emergency_contacts(self, request, queryset):
|
|
return email_companies_emergency_contacts(request, queryset)
|
|
|
|
email_bus_roll.short_description = "Email Bus Roll to Company"
|
|
email_emergency_contacts.short_description = "Email Emergency Contacts to Company"
|
|
|
|
class ShuttleRollMixin:
|
|
|
|
def show_shuttle_roll(self, request, queryset):
|
|
if queryset is None:
|
|
buses = None
|
|
else:
|
|
buses = []
|
|
for shuttle in queryset:
|
|
if shuttle.bus not in buses:
|
|
buses.append(shuttle.bus)
|
|
return render_to_pdf('reports/bus_roll.html', bus_roll_context(buses, include_bus_stops=False))
|
|
|
|
def email_shuttle_roll(self, request, queryset):
|
|
return email_school_shuttle_roll(request, queryset) |