From c6e0e157aec5eb0d58513008c63abc806c8fb2b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?= <benjamin.haettasch@fachschaft.informatik.tu-darmstadt.de> Date: Mon, 16 May 2022 01:09:36 +0200 Subject: [PATCH] Introduce sending of mails when a new orga message is saved This will send an email with the text and a link to the corresponding AK to the contact mail adress specified for a given event This implements #116 --- AKSubmission/models.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/AKSubmission/models.py b/AKSubmission/models.py index 6b202199..9f435bd8 100644 --- a/AKSubmission/models.py +++ b/AKSubmission/models.py @@ -1 +1,24 @@ -# Create your models here. +from django.conf import settings +from django.core.mail import EmailMessage +from django.db.models.signals import post_save +from django.dispatch import receiver +from django.urls import reverse_lazy + +from AKModel.models import AKOrgaMessage + + +@receiver(post_save, sender=AKOrgaMessage) +def orga_message_saved_handler(sender, instance: AKOrgaMessage, **kwargs): + # React to saved (thus new) Orga message by sending an email + + if settings.SEND_MAILS: + host = 'https://' + settings.ALLOWED_HOSTS[0] if len(settings.ALLOWED_HOSTS) > 0 else 'http://127.0.0.1:8000' + url = f"{host}{reverse_lazy('submit:ak_detail', kwargs={'pk': instance.ak.pk, 'event_slug': instance.ak.event.slug})}" + + mail = EmailMessage( + f"[AKPlanning] New message for AK '{instance.ak}' ({instance.ak.event})", + f"{instance.text}\n\n{url}", + settings.DEFAULT_FROM_EMAIL, + [instance.ak.event.contact_email] + ) + mail.send(fail_silently=True) -- GitLab