Files
goodtimes/manage_events/management/commands/manager_report.py

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()