Coverage for website/events/emails.py: 58.82%

15 statements  

« prev     ^ index     » next       coverage.py v7.6.7, created at 2025-08-14 10:31 +0000

1from django.conf import settings 

2 

3from events.models.event_registration import EventRegistration 

4from utils.snippets import send_email 

5 

6 

7def notify_first_waiting(event, first_waiting: EventRegistration): 

8 """Send an email to the first person on the waiting list when someone cancels their registration.""" 

9 organiser_emails = [ 

10 organiser.contact_address for organiser in event.organisers.all() 

11 ] 

12 

13 send_email( 

14 to=[first_waiting.email], 

15 subject=f"Notification about your registration for '{event.title}'", 

16 txt_template="events/email/member_email.txt", 

17 html_template="events/email/member_email.html", 

18 context={ 

19 "event": event, 

20 "registration": first_waiting, 

21 "name": first_waiting.name or first_waiting.member.first_name, 

22 "base_url": settings.BASE_URL, 

23 "organisers": organiser_emails, 

24 }, 

25 ) 

26 

27 

28def notify_organiser(event, registration): 

29 """Send an email to the organiser of the event if someone cancels their registration. 

30 

31 :param event: the event 

32 :param registration: the registration that was cancelled 

33 """ 

34 if not event.organisers.exists(): 34 ↛ 35line 34 didn't jump to line 35 because the condition on line 34 was never true

35 return 

36 

37 send_email( 

38 to=[organiser.contact_address for organiser in event.organisers.all()], 

39 subject=f"Registration for {event.title} cancelled by member", 

40 txt_template="events/email/organiser_email.txt", 

41 html_template="events/email/organiser_email.html", 

42 context={"event": event, "registration": registration}, 

43 ) 

44 

45 

46def notify_waiting(event, registration): 

47 organiser_emails = [ 

48 organiser.contact_address for organiser in event.organisers.all() 

49 ] 

50 

51 send_email( 

52 to=[registration.email], 

53 subject=f"Notification about your registration for '{event.title}'", 

54 txt_template="events/email/more_places_email.txt", 

55 html_template="events/email/more_places_email.html", 

56 context={ 

57 "event": event, 

58 "registration": registration, 

59 "name": registration.name or registration.member.first_name, 

60 "base_url": settings.BASE_URL, 

61 "organisers": organiser_emails, 

62 }, 

63 ) 

64 

65 

66def notify_registration(registration): 

67 send_email( 

68 to=[registration.email], 

69 subject=f"Registration confirmation for {registration.event.title}", 

70 txt_template="events/email/registration_confirmation_email.txt", 

71 html_template="events/email/registration_confirmation_email.html", 

72 context={ 

73 "event": registration.event, 

74 "registration": registration, 

75 "name": registration.name or registration.member.first_name, 

76 "base_url": settings.BASE_URL, 

77 }, 

78 )