Source code for events.emails

"""The emails defined by the events package"""
from django.conf import settings
from django.core.mail import EmailMessage
from django.template.loader import get_template
from django.utils import translation
from django.utils.translation import gettext_lazy as _

from events.models import EventRegistration
from members.models import Profile


[docs]def notify_first_waiting(event): """ Send an email to the first person on the waiting list when someone cancels their registration :param event: the event """ if ( event.max_participants is not None and EventRegistration.objects.filter(event=event, date_cancelled=None).count() > event.max_participants ): # Prepare email to send to the first person on the waiting list first_waiting = EventRegistration.objects.filter( event=event, date_cancelled=None ).order_by("date")[event.max_participants] first_waiting_member = first_waiting.member text_template = get_template("events/member_email.txt") if first_waiting_member.profile: language = first_waiting_member.profile.language else: language = Profile._meta.get_field("language").default with translation.override(language): subject = _( "[THALIA] Notification about your registration for '{}'" ).format(event.title) text_message = text_template.render( { "event": event, "registration": first_waiting, "member": first_waiting_member, "base_url": settings.BASE_URL, } ) EmailMessage(subject, text_message, to=[first_waiting_member.email]).send()
[docs]def notify_organiser(event, registration): """ Send an email to the organiser of the event if someone cancels their registration :param event: the event :param registration: the registration that was cancelled """ if event.organiser is None or event.organiser.contact_mailinglist is None: return text_template = get_template("events/organiser_email.txt") subject = "Registration for {} cancelled by member".format(event.title) text_message = text_template.render({"event": event, "registration": registration}) EmailMessage( subject, text_message, to=[event.organiser.contact_mailinglist.name + "@thalia.nu"], ).send()