diff --git a/participation/views.py b/participation/views.py
index 59c5509..c0b742c 100644
--- a/participation/views.py
+++ b/participation/views.py
@@ -230,10 +230,11 @@ class TeamDetailView(LoginRequiredMixin, FormMixin, ProcessFormView, DetailView)
self.object.participation.save()
mail_context = dict(team=self.object, domain=Site.objects.first().domain)
- mail_plain = render_to_string("participation/mails/request_validation.txt", mail_context)
- mail_html = render_to_string("participation/mails/request_validation.html", mail_context)
- send_mail(f"[{settings.APP_NAME}] {_('Team validation')}", mail_plain, settings.DEFAULT_FROM_EMAIL,
- [self.object.participation.tournament.organizers_email], html_message=mail_html)
+ with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+ mail_plain = render_to_string("participation/mails/request_validation.txt", mail_context)
+ mail_html = render_to_string("participation/mails/request_validation.html", mail_context)
+ send_mail(f"[{settings.APP_NAME}] {_('Team validation')}", mail_plain, settings.DEFAULT_FROM_EMAIL,
+ [self.object.participation.tournament.organizers_email], html_message=mail_html)
return super().form_valid(form)
@@ -265,19 +266,21 @@ class TeamDetailView(LoginRequiredMixin, FormMixin, ProcessFormView, DetailView)
message=form.cleaned_data["message"])
mail_context_html = dict(domain=domain, registration=registration, team=self.object, payment=payment,
message=form.cleaned_data["message"].replace('\n', '
'))
- mail_plain = render_to_string("participation/mails/team_validated.txt", mail_context_plain)
- mail_html = render_to_string("participation/mails/team_validated.html", mail_context_html)
- registration.user.email_user(f"[{settings.APP_NAME}] {_('Team validated')}", mail_plain,
- html_message=mail_html)
+ with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+ mail_plain = render_to_string("participation/mails/team_validated.txt", mail_context_plain)
+ mail_html = render_to_string("participation/mails/team_validated.html", mail_context_html)
+ registration.user.email_user(f"[{settings.APP_NAME}] {_('Team validated')}", mail_plain,
+ html_message=mail_html)
elif "invalidate" in self.request.POST:
self.object.participation.valid = None
self.object.participation.save()
mail_context_plain = dict(team=self.object, message=form.cleaned_data["message"])
mail_context_html = dict(team=self.object, message=form.cleaned_data["message"].replace('\n', '
'))
- mail_plain = render_to_string("participation/mails/team_not_validated.txt", mail_context_plain)
- mail_html = render_to_string("participation/mails/team_not_validated.html", mail_context_html)
- send_mail(f"[{settings.APP_NAME}] {_('Team not validated')}", mail_plain,
- None, [self.object.email], html_message=mail_html)
+ with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+ mail_plain = render_to_string("participation/mails/team_not_validated.txt", mail_context_plain)
+ mail_html = render_to_string("participation/mails/team_not_validated.html", mail_context_html)
+ send_mail(f"[{settings.APP_NAME}] {_('Team not validated')}", mail_plain,
+ None, [self.object.email], html_message=mail_html)
else:
form.add_error(None, _("You must specify if you validate the registration or not."))
return self.form_invalid(form)
@@ -1147,15 +1150,18 @@ class PoolJuryView(VolunteerMixin, FormView, DetailView):
# Send welcome mail
subject = f"[{settings.APP_NAME}] " + str(_("New jury account"))
site = Site.objects.first()
- message = render_to_string('registration/mails/add_organizer.txt', dict(user=user,
- inviter=self.request.user,
- password=password,
- domain=site.domain))
- html = render_to_string('registration/mails/add_organizer.html', dict(user=user,
- inviter=self.request.user,
- password=password,
- domain=site.domain))
- user.email_user(subject, message, html_message=html)
+ with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+ message = render_to_string('registration/mails/add_organizer.txt',
+ dict(user=user,
+ inviter=self.request.user,
+ password=password,
+ domain=site.domain))
+ html = render_to_string('registration/mails/add_organizer.html',
+ dict(user=user,
+ inviter=self.request.user,
+ password=password,
+ domain=site.domain))
+ user.email_user(subject, message, html_message=html)
# Add the user in the jury
self.object.juries.add(reg)
@@ -1845,10 +1851,9 @@ class NotationSheetTemplateView(VolunteerMixin, DetailView):
return context
def render_to_response(self, context, **response_kwargs):
- translation.activate(settings.PREFERRED_LANGUAGE_CODE)
-
template_name = self.get_template_names()[0]
- tex = render_to_string(template_name, context=context, request=self.request)
+ with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+ tex = render_to_string(template_name, context=context, request=self.request)
temp_dir = mkdtemp()
with open(os.path.join(temp_dir, "texput.tex"), "w") as f:
f.write(tex)
diff --git a/registration/models.py b/registration/models.py
index e68bab6..e99741e 100644
--- a/registration/models.py
+++ b/registration/models.py
@@ -308,27 +308,27 @@ class ParticipantRegistration(Registration):
"""
The team is selected for final.
"""
- translation.activate(settings.PREFERRED_LANGUAGE_CODE)
- subject = f"[{settings.APP_NAME}] " + str(_("Team selected for the final tournament"))
- site = Site.objects.first()
- from participation.models import Tournament
- tournament = Tournament.final_tournament()
- payment = self.payments.filter(final=True).first() if self.is_student else None
- message = loader.render_to_string('registration/mails/final_selection.txt',
- {
- 'user': self.user,
- 'domain': site.domain,
- 'tournament': tournament,
- 'payment': payment,
- })
- html = loader.render_to_string('registration/mails/final_selection.html',
- {
- 'user': self.user,
- 'domain': site.domain,
- 'tournament': tournament,
- 'payment': payment,
- })
- self.user.email_user(subject, message, html_message=html)
+ with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+ subject = f"[{settings.APP_NAME}] " + str(_("Team selected for the final tournament"))
+ site = Site.objects.first()
+ from participation.models import Tournament
+ tournament = Tournament.final_tournament()
+ payment = self.payments.filter(final=True).first() if self.is_student else None
+ message = loader.render_to_string('registration/mails/final_selection.txt',
+ {
+ 'user': self.user,
+ 'domain': site.domain,
+ 'tournament': tournament,
+ 'payment': payment,
+ })
+ html = loader.render_to_string('registration/mails/final_selection.html',
+ {
+ 'user': self.user,
+ 'domain': site.domain,
+ 'tournament': tournament,
+ 'payment': payment,
+ })
+ self.user.email_user(subject, message, html_message=html)
class Meta:
verbose_name = _("participant registration")
@@ -802,35 +802,35 @@ class Payment(models.Model):
return checkout_intent
def send_remind_mail(self):
- translation.activate(settings.PREFERRED_LANGUAGE_CODE)
- subject = f"[{settings.APP_NAME}] " + str(_("Reminder for your payment"))
- site = Site.objects.first()
- for registration in self.registrations.all():
- message = loader.render_to_string('registration/mails/payment_reminder.txt',
- dict(registration=registration, payment=self, domain=site.domain))
- html = loader.render_to_string('registration/mails/payment_reminder.html',
- dict(registration=registration, payment=self, domain=site.domain))
- registration.user.email_user(subject, message, html_message=html)
+ with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+ subject = f"[{settings.APP_NAME}] " + str(_("Reminder for your payment"))
+ site = Site.objects.first()
+ for registration in self.registrations.all():
+ message = loader.render_to_string('registration/mails/payment_reminder.txt',
+ dict(registration=registration, payment=self, domain=site.domain))
+ html = loader.render_to_string('registration/mails/payment_reminder.html',
+ dict(registration=registration, payment=self, domain=site.domain))
+ registration.user.email_user(subject, message, html_message=html)
def send_helloasso_payment_confirmation_mail(self):
- translation.activate(settings.PREFERRED_LANGUAGE_CODE)
- subject = f"[{settings.APP_NAME}] " + str(_("Payment confirmation"))
- site = Site.objects.first()
- for registration in self.registrations.all():
- message = loader.render_to_string('registration/mails/payment_confirmation.txt',
- dict(registration=registration, payment=self, domain=site.domain))
- html = loader.render_to_string('registration/mails/payment_confirmation.html',
- dict(registration=registration, payment=self, domain=site.domain))
- registration.user.email_user(subject, message, html_message=html)
+ with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+ subject = f"[{settings.APP_NAME}] " + str(_("Payment confirmation"))
+ site = Site.objects.first()
+ for registration in self.registrations.all():
+ message = loader.render_to_string('registration/mails/payment_confirmation.txt',
+ dict(registration=registration, payment=self, domain=site.domain))
+ html = loader.render_to_string('registration/mails/payment_confirmation.html',
+ dict(registration=registration, payment=self, domain=site.domain))
+ registration.user.email_user(subject, message, html_message=html)
- payer = self.get_checkout_intent()['order']['payer']
- payer_name = f"{payer['firstName']} {payer['lastName']}"
- if not self.registrations.filter(user__email=payer['email']).exists():
- message = loader.render_to_string('registration/mails/payment_confirmation.txt',
- dict(registration=payer_name, payment=self, domain=site.domain))
- html = loader.render_to_string('registration/mails/payment_confirmation.html',
- dict(registration=payer_name, payment=self, domain=site.domain))
- send_mail(subject, message, None, [payer['email']], html_message=html)
+ payer = self.get_checkout_intent()['order']['payer']
+ payer_name = f"{payer['firstName']} {payer['lastName']}"
+ if not self.registrations.filter(user__email=payer['email']).exists():
+ message = loader.render_to_string('registration/mails/payment_confirmation.txt',
+ dict(registration=payer_name, payment=self, domain=site.domain))
+ html = loader.render_to_string('registration/mails/payment_confirmation.html',
+ dict(registration=payer_name, payment=self, domain=site.domain))
+ send_mail(subject, message, None, [payer['email']], html_message=html)
def get_absolute_url(self):
return reverse_lazy("registration:update_payment", args=(self.pk,))
diff --git a/registration/views.py b/registration/views.py
index f2d9c6d..7c3fdfd 100644
--- a/registration/views.py
+++ b/registration/views.py
@@ -137,16 +137,17 @@ class AddOrganizerView(VolunteerMixin, CreateView):
form.instance.set_password(password)
form.instance.save()
- subject = f"[{settings.APP_NAME}] " + str(_("New organizer account"))
- site = Site.objects.first()
- message = render_to_string('registration/mails/add_organizer.txt', dict(user=registration.user,
+ with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+ subject = f"[{settings.APP_NAME}] " + str(_("New organizer account"))
+ site = Site.objects.first()
+ message = render_to_string('registration/mails/add_organizer.txt', dict(user=registration.user,
+ inviter=self.request.user,
+ password=password,
+ domain=site.domain))
+ html = render_to_string('registration/mails/add_organizer.html', dict(user=registration.user,
inviter=self.request.user,
password=password,
domain=site.domain))
- html = render_to_string('registration/mails/add_organizer.html', dict(user=registration.user,
- inviter=self.request.user,
- password=password,
- domain=site.domain))
registration.user.email_user(subject, message, html_message=html)
if registration.is_admin:
@@ -461,10 +462,9 @@ class AuthorizationTemplateView(TemplateView):
return context
def render_to_response(self, context, **response_kwargs):
- translation.activate(settings.PREFERRED_LANGUAGE_CODE)
-
template_name = self.get_template_names()[0]
- tex = render_to_string(template_name, context=context, request=self.request)
+ with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+ tex = render_to_string(template_name, context=context, request=self.request)
temp_dir = mkdtemp()
with open(os.path.join(temp_dir, "texput.tex"), "w") as f:
f.write(tex)