Added csv export for traveller and email to schools function
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
import csv
|
||||
from datetime import date
|
||||
from io import BytesIO
|
||||
from io import BytesIO, StringIO
|
||||
|
||||
from django.contrib.admin.views.decorators import staff_member_required
|
||||
from django.core.mail import send_mail, EmailMessage
|
||||
from django.core.mail import EmailMessage
|
||||
from django.http import HttpResponse
|
||||
from django.template.loader import get_template
|
||||
from xhtml2pdf import pisa
|
||||
|
||||
from coord.context_helpers import bus_roll_context
|
||||
from coord.context_helpers import bus_roll_context, school_roll_context
|
||||
from coord.models import Company
|
||||
|
||||
|
||||
@@ -20,7 +20,6 @@ def render_to_pdf(template, context):
|
||||
return HttpResponse(result.getvalue(), content_type='application/pdf')
|
||||
|
||||
|
||||
@staff_member_required
|
||||
def email_companies_bus_roll(request, query_set=None):
|
||||
html_template = 'reports/bus_roll.html'
|
||||
context = bus_roll_context(query_set)
|
||||
@@ -46,3 +45,22 @@ def email_companies_bus_roll(request, query_set=None):
|
||||
email.send(fail_silently=True)
|
||||
|
||||
return render_to_pdf(html_template, context)
|
||||
|
||||
|
||||
def email_school_roll_csv(request, school):
|
||||
|
||||
travellers = school_roll_context(school)
|
||||
csvFile = StringIO()
|
||||
fieldnames = list(travellers[0].keys())
|
||||
|
||||
writer = csv.DictWriter(csvFile, fieldnames=fieldnames)
|
||||
writer.writeheader(),
|
||||
writer.writerows(travellers)
|
||||
|
||||
subject = "Bus Roll"
|
||||
message = f"A new bus roll for {school.name} has been generated"
|
||||
email_from = "bus.manager@education.vic.gov.au"
|
||||
recipient = [school.email]
|
||||
email = EmailMessage(subject, message, email_from, recipient)
|
||||
email.attach(f"school_bus_roll_{date.today()}.csv", csvFile.getvalue(), 'text/csv')
|
||||
email.send()
|
||||
|
||||
Reference in New Issue
Block a user