34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
from django.core.management.base import BaseCommand
|
|
from django.core.mail import EmailMessage
|
|
from django.conf import settings
|
|
from manage_events.report import (
|
|
get_previous_month_date_range,
|
|
event_managers,
|
|
generate_event_report,
|
|
generate_event_report_pdf_three,
|
|
)
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = "Send monthly event reports to event managers"
|
|
|
|
def handle(self, *args, **kwargs):
|
|
start_date, end_date = get_previous_month_date_range()
|
|
users = event_managers()
|
|
|
|
for user in users:
|
|
report_data = generate_event_report(user.id)
|
|
if report_data:
|
|
pdf_data, filename = generate_event_report_pdf_three(user, report_data)
|
|
self.send_email_with_attachment(user.email, pdf_data, filename)
|
|
|
|
def send_email_with_attachment(self, email, pdf_data, filename):
|
|
email_message = EmailMessage(
|
|
subject="Monthly Event Report",
|
|
body="Please find the attached report for the last month.",
|
|
to=[email],
|
|
from_email=settings.DEFAULT_FROM_EMAIL,
|
|
)
|
|
email_message.attach(filename, pdf_data, "application/pdf")
|
|
email_message.send()
|