diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index c77d6a6f85..c2a3b66e81 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -387,28 +387,28 @@ class Order(LoggedModel): """ from pretix.base.services.mail import SendMailException, mail, render_mail - recipient = self.email - try: - with language(self.locale): + with language(self.locale): + recipient = self.email + try: email_content = render_mail(template, context)[0] mail( recipient, subject, template, context, self.event, self.locale, self, headers, sender, invoices=invoices ) - except SendMailException: - raise - else: - self.log_action( - log_entry_type, - user=user, - data={ - 'subject': subject, - 'message': email_content, - 'recipient': recipient, - 'invoices': [i.pk for i in invoices] if invoices else [] - } - ) + except SendMailException: + raise + else: + self.log_action( + log_entry_type, + user=user, + data={ + 'subject': subject, + 'message': email_content, + 'recipient': recipient, + 'invoices': [i.pk for i in invoices] if invoices else [] + } + ) def answerfile_name(instance, filename: str) -> str: diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index 32c2dac17d..59618b8327 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -581,37 +581,38 @@ def send_expiry_warnings(sender, **kwargs): days = eventsettings.get('mail_days_order_expire_warning', as_type=int) tz = pytz.timezone(eventsettings.get('timezone', settings.TIME_ZONE)) if days and (o.expires - today).days <= days: - o.expiry_reminder_sent = True - o.save() - try: - invoice_name = o.invoice_address.name - invoice_company = o.invoice_address.company - except InvoiceAddress.DoesNotExist: - invoice_name = "" - invoice_company = "" - email_template = eventsettings.mail_text_order_expire_warning - email_context = { - 'event': o.event.name, - 'url': build_absolute_uri(o.event, 'presale:event.order', kwargs={ - 'order': o.code, - 'secret': o.secret - }), - 'expire_date': date_format(o.expires.astimezone(tz), 'SHORT_DATE_FORMAT'), - 'invoice_name': invoice_name, - 'invoice_company': invoice_company, - } - if eventsettings.payment_term_expire_automatically: - email_subject = _('Your order is about to expire: %(code)s') % {'code': o.code} - else: - email_subject = _('Your order is pending payment: %(code)s') % {'code': o.code} + with language(o.locale): + o.expiry_reminder_sent = True + o.save() + try: + invoice_name = o.invoice_address.name + invoice_company = o.invoice_address.company + except InvoiceAddress.DoesNotExist: + invoice_name = "" + invoice_company = "" + email_template = eventsettings.mail_text_order_expire_warning + email_context = { + 'event': o.event.name, + 'url': build_absolute_uri(o.event, 'presale:event.order', kwargs={ + 'order': o.code, + 'secret': o.secret + }), + 'expire_date': date_format(o.expires.astimezone(tz), 'SHORT_DATE_FORMAT'), + 'invoice_name': invoice_name, + 'invoice_company': invoice_company, + } + if eventsettings.payment_term_expire_automatically: + email_subject = _('Your order is about to expire: %(code)s') % {'code': o.code} + else: + email_subject = _('Your order is pending payment: %(code)s') % {'code': o.code} - try: - o.send_mail( - email_subject, email_template, email_context, - 'pretix.event.order.email.expire_warning_sent' - ) - except SendMailException: - logger.exception('Reminder email could not be sent') + try: + o.send_mail( + email_subject, email_template, email_context, + 'pretix.event.order.email.expire_warning_sent' + ) + except SendMailException: + logger.exception('Reminder email could not be sent') @receiver(signal=periodic_task)