Skip to content

Commit 38f964b

Browse files
committed
Send ticket on paiement
1 parent 8124063 commit 38f964b

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

insalan/tournament/payment.py

+10
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from insalan.payment.hooks import PaymentHooks, PaymentCallbackSystem
99
from insalan.tickets.models import Ticket
1010
from insalan.tournament.models import Player, Manager, Substitute, PaymentStatus
11+
from insalan.user.models import UserMailer
1112

1213

1314
logger = logging.getLogger("insalan.tournament.hooks")
@@ -112,6 +113,9 @@ def handle_player_reg(reg: Player):
112113
reg.ticket = tick
113114
reg.save()
114115

116+
# Send an email to the user
117+
UserMailer.send_ticket_mail(reg.user, tick)
118+
115119
@staticmethod
116120
def handle_manager_reg(reg: Manager):
117121
"""
@@ -124,6 +128,9 @@ def handle_manager_reg(reg: Manager):
124128
reg.ticket = tick
125129
reg.save()
126130

131+
# Send an email to the user
132+
UserMailer.send_ticket_mail(reg.user, tick)
133+
127134
@staticmethod
128135
def handle_substitute_reg(reg: Substitute):
129136
"""
@@ -136,6 +143,9 @@ def handle_substitute_reg(reg: Substitute):
136143
reg.ticket = tick
137144
reg.save()
138145

146+
# Send an email to the user
147+
UserMailer.send_ticket_mail(reg.user, tick)
148+
139149
@staticmethod
140150
def payment_failure(transaction, product, _count):
141151
"""Handle the failure of a registration"""

insalan/user/models.py

+22-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
PasswordResetTokenGenerator,
1010
default_token_generator,
1111
)
12-
from django.core.mail import send_mail
12+
from django.core.mail import EmailMessage, get_connection, send_mail
1313
from django.db import models
1414
from django.utils import timezone
1515
from django.utils.translation import gettext_lazy as _
@@ -209,4 +209,25 @@ def send_kick_mail(user_object: User, team_name: str):
209209
fail_silently=False,
210210
)
211211

212+
@staticmethod
213+
def send_ticket_mail(user_object: User, ticket: str):
214+
"""
215+
Send a mail to a user that has been kicked.
216+
"""
217+
# prevent circular import
218+
from insalan.tickets.models import TicketManager
219+
220+
ticket_pdf = TicketManager.generate_ticket_pdf(ticket)
221+
222+
connection = get_connection(fail_silently=False)
223+
email = EmailMessage(
224+
_("Votre billet pour l'InsaLan"),
225+
_("Votre inscription pour l'Insalan a été payée. Votre billet est disponible en pièce jointe. Vous pouvez retrouver davantages d'informations sur l'évènement sur le site internet de l'InsaLan."),
226+
None, # Django falls back to default of settings.py
227+
[user_object.email],
228+
connection=connection,
229+
)
230+
email.attach(f"billet-{user_object.username.replace(' ', '-')}-{ticket.tournament.event.name.replace(' ', '-')}.pdf", ticket_pdf, "application/pdf")
231+
email.send()
232+
212233
# vim: set tw=80 cc=80:

0 commit comments

Comments
 (0)