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