forked from CGM_Public/pretix_original
Respect language headers on error 400/404/500 pages
This commit is contained in:
@@ -30,8 +30,16 @@ from django.utils.translation import gettext as _
|
||||
from django.views.decorators.csrf import requires_csrf_token
|
||||
from sentry_sdk import last_event_id
|
||||
|
||||
from pretix.base.i18n import language
|
||||
from pretix.base.middleware import get_language_from_request
|
||||
|
||||
|
||||
def csrf_failure(request, reason=""):
|
||||
try:
|
||||
locale = get_language_from_request(request)
|
||||
except:
|
||||
locale = "en"
|
||||
with language(locale): # Middleware might not have run, need to do this manually
|
||||
t = get_template('csrffail.html')
|
||||
c = {
|
||||
'reason': reason,
|
||||
@@ -61,6 +69,11 @@ def csrf_failure(request, reason=""):
|
||||
|
||||
@requires_csrf_token
|
||||
def page_not_found(request, exception):
|
||||
try:
|
||||
locale = get_language_from_request(request)
|
||||
except:
|
||||
locale = "en"
|
||||
with language(locale): # Middleware might not have run, need to do this manually
|
||||
exception_repr = exception.__class__.__name__
|
||||
# Try to get an "interesting" exception message, if any (and not the ugly
|
||||
# Resolver404 dictionary)
|
||||
@@ -84,6 +97,11 @@ def page_not_found(request, exception):
|
||||
|
||||
@requires_csrf_token
|
||||
def server_error(request):
|
||||
try:
|
||||
locale = get_language_from_request(request)
|
||||
except:
|
||||
locale = "en"
|
||||
with language(locale): # Middleware might not have run, need to do this manually
|
||||
try:
|
||||
template = loader.get_template('500.html')
|
||||
except TemplateDoesNotExist:
|
||||
|
||||
Reference in New Issue
Block a user