Files
fet2020/fet2020/rental/mails.py

103 lines
3.2 KiB
Python

import logging
from urllib.parse import urljoin
from django.conf import settings
from django.contrib.sites.models import Site
from django.core.mail import EmailMessage
RENTAL_EMAIL = settings.EMAIL_HOST_USER
logger = logging.getLogger(__name__)
def send_mail_approved(obj):
subject = f"FET-Verleih: {obj.get_status_display()}"
total_deposit = obj.calc_total_deposit()
# Build URL to contact page
site = Site.objects.get_current()
contact_link = urljoin(f"https://{site.domain}", "/kontakt/")
# Build email message
message = (
f"Hallo {obj.firstname},\n\ndeine Verleihanfrage wurde erfolgreich genehmigt. Für den "
f"Zeitraum vom {obj.date_start.strftime('%d.%m.%Y')} bis einschließlich "
f"{obj.date_end.strftime('%d.%m.%Y')} stehen dir folgende Gegenstände zur Verfügung:\n"
)
for item in obj.rentalitems.all():
message += f"- {item.name}\n"
message += (
f"\nDie Abholung ist am {obj.date_start.strftime('%d.%m.%Y')} während der Beratungszeit "
f"möglich: {contact_link}\n"
)
if total_deposit > 0:
message += (
f"Bitte bring zur Abholung den Gesamtpfand in Höhe von {total_deposit} € in bar mit.\n"
)
message += "\nLiebe Grüße,\ndas Verleih-Team"
# Create email
email = EmailMessage(
subject, message, from_email=RENTAL_EMAIL, to=[obj.email], cc=[RENTAL_EMAIL]
)
try:
email.send()
except Exception as exc:
logger.info("Failed to send approval email for rental #%s. Error: %s", obj.id, exc)
def send_mail_rejected(obj):
subject = f"FET-Verleih: {obj.get_status_display()}"
# Build email message
message = (
f"Hallo {obj.firstname},\n\nleider müssen wir dir mitteilen, dass deine Verleihanfrage für "
f"den Zeitraum vom {obj.date_start.strftime('%d.%m.%Y')} bis einschließlich "
f"{obj.date_end.strftime('%d.%m.%Y')} nicht genehmigt werden konnte. Für diesen Zeitraum "
"waren folgende Gegenstände angefragt:\n"
)
for item in obj.rentalitems.all():
message += f"- {item.name}\n"
message += (
"\nVielen Dank für dein Verständnis. Bei Fragen oder für alternative Termine kannst du "
"dich gerne bei uns melden.\n\nLiebe Grüße,\ndas Verleih-Team"
)
# Create email
email = EmailMessage(
subject, message, from_email=RENTAL_EMAIL, to=[obj.email], cc=[RENTAL_EMAIL]
)
try:
email.send()
except Exception as exc:
logger.info("Failed to send rejection email for rental #%s. Error: %s", obj.id, exc)
def send_mail_returned(obj):
subject = f"FET-Verleih: {obj.get_status_display()}"
# Build email message
message = (
f"Hallo {obj.firstname},\n\n"
"deine Verleihgegenstände wurden erfolgreich zurückgegeben.\n\n"
"Liebe Grüße,\n"
"das Verleih-Team"
)
# Create email
email = EmailMessage(
subject, message, from_email=RENTAL_EMAIL, to=[obj.email], cc=[RENTAL_EMAIL]
)
try:
email.send()
except Exception as exc:
logger.info("Failed to send returned email for rental #%s. Error: %s", obj.id, exc)