From ca35d714dc05fae891ae0aa69d142fdcdc5f36b9 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 6 Jun 2018 15:50:23 +0200 Subject: [PATCH] Translate errors for addon selection --- src/pretix/base/services/cart.py | 14 +++++++++++--- src/pretix/presale/checkoutflow.py | 6 ++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/pretix/base/services/cart.py b/src/pretix/base/services/cart.py index 58debd723..e90400242 100644 --- a/src/pretix/base/services/cart.py +++ b/src/pretix/base/services/cart.py @@ -10,7 +10,7 @@ from django.dispatch import receiver from django.utils.timezone import now from django.utils.translation import pgettext_lazy, ugettext as _ -from pretix.base.i18n import LazyLocaleException, language +from pretix.base.i18n import language from pretix.base.models import ( CartPosition, Event, InvoiceAddress, Item, ItemVariation, Voucher, ) @@ -27,8 +27,16 @@ from pretix.presale.signals import ( ) -class CartError(LazyLocaleException): - pass +class CartError(Exception): + def __init__(self, *args): + msg = args[0] + msgargs = args[1] if len(args) > 1 else None + self.args = args + if msgargs: + msg = _(msg) % msgargs + else: + msg = _(msg) + super().__init__(msg) error_messages = { diff --git a/src/pretix/presale/checkoutflow.py b/src/pretix/presale/checkoutflow.py index aef32bfd7..48910b9db 100644 --- a/src/pretix/presale/checkoutflow.py +++ b/src/pretix/presale/checkoutflow.py @@ -6,7 +6,9 @@ from django.http import HttpResponseNotAllowed, JsonResponse from django.shortcuts import redirect from django.utils import translation from django.utils.functional import cached_property -from django.utils.translation import pgettext_lazy, ugettext_lazy as _ +from django.utils.translation import ( + get_language, pgettext_lazy, ugettext_lazy as _, +) from django.views.generic.base import TemplateResponseMixin from pretix.base.models import Order @@ -292,7 +294,7 @@ class AddOnsStep(CartMixin, AsyncAction, TemplateFlowStep): return self.get(request, *args, **kwargs) return self.do(self.request.event.id, data, get_or_create_cart_id(self.request), - invoice_address=self.invoice_address.pk) + invoice_address=self.invoice_address.pk, locale=get_language()) class QuestionsStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):